Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Kgfq
74 / 37 / 3
Регистрация: 23.09.2012
Сообщений: 408
#1

STL find

28.10.2012, 02:04. Просмотров 2431. Ответов 11
Метки нет (Все метки)

deleted
нашел
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2012, 02:04
Ответы с готовыми решениями:

оператор find в stl
Допустим у меня есть такой код: #include <vector> #include <algorithm>...

STL алгоритм find, найти элементы
Здраствуйте! У меня есть например массив vector<int> mas = {1,2,3,4,4,4,5,6};...

STL. Алгоритм find(). Игнорировать регистр
Вся суть вопроса изложена в теме. Есть код, я помещаю в очередь с двусторонним...

Организовать find в векторе через STL!!!
Написал через вектор STL некий контейнер заполнил его данными. Написал...

Find() для поиска элемента в поле класса / STL
Есть какой то класс, к примеру: class Dog { public: Dog () {}; public:...

11
gray_fox
What a waste!
1553 / 1258 / 166
Регистрация: 21.04.2012
Сообщений: 2,636
Завершенные тесты: 3
28.10.2012, 02:08 #2
std::find

Добавлено через 16 секунд
из <algorithm>
0
Marina_P
8 / 8 / 1
Регистрация: 11.02.2013
Сообщений: 69
Завершенные тесты: 1
11.02.2013, 22:40 #3
Допустим у меня есть вектор х,итератор i и число а.Через find я хочу найти позицию элемента а в векторе
i=find(x.begin(),x.end(),a)
Помогите,пожалуйста!
0
Avazart
Эксперт С++
7718 / 5627 / 549
Регистрация: 10.12.2010
Сообщений: 25,333
Записей в блоге: 17
11.02.2013, 23:00 #4
i-x.begin()
0
Marina_P
8 / 8 / 1
Регистрация: 11.02.2013
Сообщений: 69
Завершенные тесты: 1
11.02.2013, 23:09 #5
спасибо за ответ,то в том то и дело, что не получается.Оператор find возвращает значение а,а мне нужен номер позиции в векторе.
0
Avazart
Эксперт С++
7718 / 5627 / 549
Регистрация: 10.12.2010
Сообщений: 25,333
Записей в блоге: 17
11.02.2013, 23:10 #6
Он возвращает итератор а не значение или индекс...

В STL все практически через итераторы делается, а не индексы...
0
Marina_P
8 / 8 / 1
Регистрация: 11.02.2013
Сообщений: 69
Завершенные тесты: 1
11.02.2013, 23:15 #7
А как же мне в таком случае узнать номер позиции?Какой алгоритм применить?
0
Avazart
Эксперт С++
7718 / 5627 / 549
Регистрация: 10.12.2010
Сообщений: 25,333
Записей в блоге: 17
11.02.2013, 23:19 #8
Зачем ?

Добавлено через 2 минуты
C++
1
2
3
4
std::vector<some_type>::iterator it=find(x.begin(),x.end(),a);
int index= std::distance(x.begin(),  it );  // почти тоже самое что и it-x.begin() 
 
std::cout<< x[index] <<std::endl; // выводим  a
2
Marina_P
8 / 8 / 1
Регистрация: 11.02.2013
Сообщений: 69
Завершенные тесты: 1
11.02.2013, 23:20 #9
Мне нужно работать с элементами,которые находятся в векторе за элементом а.Я думала,что через find я найду номер позиции,но не получается.
0
Avazart
Эксперт С++
7718 / 5627 / 549
Регистрация: 10.12.2010
Сообщений: 25,333
Записей в блоге: 17
11.02.2013, 23:21 #10
Ну так работайте с ними через итератор.
0
Ev[G]eN
iOS/Android Developer
Эксперт С++
5116 / 1554 / 950
Регистрация: 23.01.2011
Сообщений: 3,183
Завершенные тесты: 1
11.02.2013, 23:25 #11
чем такой вариант не устраивает?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
#include <random>
#include <ctime>
 
int main ()
{
    auto rnd = std::bind(std::uniform_int_distribution <> (-10, 10),
                         std::mt19937 (time(nullptr)));
    int vectSize = 25;
    std::vector <int> vect (vectSize);
    std::generate(vect.begin(), vect.end(), rnd);
    std::copy(vect.begin(), vect.end(), std::ostream_iterator <int> (std::cout, " "));
    std::cout << std::endl;
 
    int num;
    std::cin >> num;
    auto pos = (std::find(vect.begin(), vect.end(), num) - vect.begin()) + 1;
    std::cout << pos;
 
    return 0;
}
0
Avazart
Эксперт С++
7718 / 5627 / 549
Регистрация: 10.12.2010
Сообщений: 25,333
Записей в блоге: 17
11.02.2013, 23:25 #12
К примеру
C++
1
2
3
std::vector<int>::iterator it=find(x.begin(),x.end(),a);
 
 for(; it!=x.end() ; ++it)  *it= 5;  // присваиваем  всем элементам за "а" и самому "а"  значение "5"
0
11.02.2013, 23:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2013, 23:25

STL
Доброго времени суток! Возникли трудности с пониманием задачи и принципа...

STL
Здравствуйте. Ребят пожалуйста решите 2 простенькие задачки, потратьте немного...

STL
Всем привет :) Задача следующая - Нужно считать из файла строки, запихнуть их...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru