Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Функция, обратная at()

281
15 февраля 2007 года
Fan][
279 / / 19.12.2003
at() осуществляет доступ у элементу по индексу. А есть функция, которая возвращает индекс(ы) известного элемента?
1.8K
15 февраля 2007 года
k3Eahn
365 / / 19.12.2005
Алгоритм find? (его "семантика")
281
15 февраля 2007 года
Fan][
279 / / 19.12.2003
Что-то я не понял как через find найти номер позиции в векторе...
63
15 февраля 2007 года
Zorkus
2.6K / / 04.11.2006
Цитата: k3Eahn
Алгоритм find? (его "семантика")


Ага, только он возвращает позицию первого найденного элемента. Если нужны все, то его вызываем в цикле, либо count() раз (алгоритм, считающий кол-во заданных (в простейшем случае) элементов), либо пока возвращает не end() (что значит, что элемент был найден).
Он возвращает итератор этого элемента. Вычтя их него vector.begin() - итератор, получишь индекс.

1.8K
15 февраля 2007 года
k3Eahn
365 / / 19.12.2005
Zorkus
Угу. Просто автора интересовала именно функция поиска, я и назвал такую функцию. Хотя можно сделать это простым перебором, не прибегая к помощи функции.
63
15 февраля 2007 года
Zorkus
2.6K / / 04.11.2006
Цитата: k3Eahn
Zorkus
Угу. Просто автора интересовала именно функция поиска, я и назвал такую функцию. Хотя можно сделать это простым перебором, не прибегая к помощи функции.


А как, по-твоему, работает функция find?;)

1.8K
15 февраля 2007 года
k3Eahn
365 / / 19.12.2005
Дык я же уже сказал - алгоритм find и его "семантика", т.е. его смысл.
Опять же стандартные алгоритмы оперируют итераторами, а автору видимо удобнее работать с вектором используя индексы (хотя в векторе итераторы есть непосредственно указатели на элементы, т.е итератор по сути есть тайпдеф на T*, где T тип элемента контейнера).

Код:
std::vector<T> v;

...

for(size_t i = 0; i < v.size(); ++i)
{
   if(v == valueToFind)
   {
       //Делаем что-нибудь
   }
}
63
15 февраля 2007 года
Zorkus
2.6K / / 04.11.2006
А, сори, про семантику не заметил:). А так да, согласен.
А автору настоятельно рекомендую переходить к использованию итераторов, без них в STL делать нечего.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог