Форум программистов, компьютерный форум CyberForum.ru

STL алгоритм find, найти элементы - C++

Восстановить пароль Регистрация
 
ovner
7 / 7 / 0
Регистрация: 06.10.2012
Сообщений: 140
03.06.2013, 22:44     STL алгоритм find, найти элементы #1
Здраствуйте! У меня есть например массив vector<int> mas = {1,2,3,4,4,4,5,6};
Найти надо элемент 4, но find ищет только первый этот элемент в массиве, а мне надо что бы он нашёл все элементы 4. и вывести их позиции.

C++
1
2
3
4
5
6
7
8
9
10
void masuv::search(int a)
{
    vector<int>::iterator it;
    it = find(mas.begin(), mas.end(), a);
    
    if (it == mas.end())
        cout<<"Такого елемента в массиве нету!"<<endl;
    else 
        cout<<"Елемент "<<*it<<" существует. "<<"Его номер: "<<it-mas.begin()+1<<endl; 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2013, 22:44     STL алгоритм find, найти элементы
Посмотрите здесь:

оператор find в stl C++
Организовать find в векторе через STL!!! C++
STL find C++
C++ STL. Алгоритм copy()
C++ STL. Алгоритм find(). Игнорировать регистр
Алгоритм STL C++
STL.Find() C++
C++ Find() для поиска элемента в поле класса / STL

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
03.06.2013, 22:52     STL алгоритм find, найти элементы #2
C++
1
2
3
4
5
    vector<int> v {1, 2, 3, 3, 3, 4, 5};
    int val = 3;
    auto it = begin(v);
    while ( (it = find(it, end(v), val)) != end(v) )
        cout << distance(begin(v), it++) << ' ';
Yandex
Объявления
03.06.2013, 22:52     STL алгоритм find, найти элементы
Ответ Создать тему
Опции темы

Текущее время: 04:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru