|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
01.09.2010, 17:30 | #1 |
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
алгоритм search, поиск в векторе ссылочных переменных
Я в этом векторе:
vector< pair<string, int >* > ghostS; пытаюсь искать: iter = search(ghostS.begin(),ghostS.end(), tempalt, tempalt, linksearch); Вопрос в том, каким должен быть предикат?(я с ним как только не извращался, но ничего не вышло) bool linksearch(pair<string, int> a, pair<string, int> b) { return ((a.first) == (b.first)); } Код:
Последний раз редактировалось the_deer_one; 01.09.2010 в 17:33. |
01.09.2010, 17:40 | #2 |
Форумчанин
Регистрация: 26.10.2009
Сообщений: 170
|
посмотрите внимательнее на ваш код. У вас вектор типа
Код:
Код:
|
01.09.2010, 17:43 | #3 |
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
Ага, я в итераторе звёздочку забыл. Тем не менее вопрос остаётся. У меня не получается linksearch корректно написать.
|
01.09.2010, 17:51 | #4 |
Форумчанин
Регистрация: 26.10.2009
Сообщений: 170
|
Код:
|
01.09.2010, 17:55 | #5 |
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
sashonk
Я пробовал такое - не работает. Во всяком случае у меня компилятор тучу ошибок выдаёт. Ты со своим вариантом функции программу собрать пробовал, или просто написал? |
01.09.2010, 18:10 | #6 |
Форумчанин
Регистрация: 26.10.2009
Сообщений: 170
|
ерунда какая-то...у меня работает в таком формате
Код:
|
01.09.2010, 19:50 | #7 | |
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
Во!! Точно. Такой вариант я точно пробовал, но у меня судя по всему из-за ошибки в типе оператора не сработало.
Цитата:
|
|
02.09.2010, 10:47 | #8 |
Форумчанин
Регистрация: 26.10.2009
Сообщений: 170
|
функция search принимает в качестве аргументов итераторы, а вы ей передаете указатель (tempalt), поэтому она себя и ведет непонятно. И потом она предназначена для поиска в последовательности подпоследовательности, т.е. это интервальная функция. А для поиска одного элемента пользуются функцией find. Потом, мне кажется, использовать шаблон pair в виде указателя в принципе не очень хорошая практика. Лучше юзать объект и использовать шаблонную функцию make_pair(arg1, arg2). Что касается вашей задачи, мне кажется, лучше подойдет контейнер map с возможностью поиска по ключу
|
02.09.2010, 11:09 | #9 | |||
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
sashonk
Цитата:
Цитата:
Цитата:
Что-бы не плодить сущностей и не извращаться, я просто решил сделать нужное мне количество контейнеров, по факту элементы которых указывают на одни объекты. Таким образом и данные не клонируются, и изменения вносятся во всё разом. Впрочем если есть более хороший вариант, я буду рад про него узнать. |
|||
02.09.2010, 15:15 | #10 | |
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
sashonk
Цитата:
Код:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск в векторе. | the_deer_one | Общие вопросы C/C++ | 3 | 31.08.2010 17:52 |
Вычислить сумму всех четных чисел в векторе | malova | Microsoft Office Excel | 2 | 31.05.2010 09:09 |
Уничтожение ссылочных массивов. | jojahti | Общие вопросы C/C++ | 2 | 22.08.2009 01:03 |
Алгоритм поиск текста | Des | Общие вопросы Delphi | 5 | 27.04.2009 22:01 |