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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
#1

STL find - C++

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

deleted
нашел
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2012, 02:04     STL find
Посмотрите здесь:

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

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

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

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

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

Find из string.h - C++
Расскажите про функцию find из библиотеки строк. Не получается использовать, и какое значение она выдает, если в строке подстроки не...

Функция find - C++
Почему #include <iostream> #include <iterator> #include <string> #include <algorithm> using namespace std; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
1411 / 1140 / 55
Регистрация: 21.04.2012
Сообщений: 2,362
Завершенные тесты: 3
28.10.2012, 02:08     STL find #2
std::find

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

В STL все практически через итераторы делается, а не индексы...
Marina_P
8 / 8 / 0
Регистрация: 11.02.2013
Сообщений: 67
11.02.2013, 23:15     STL find #7
А как же мне в таком случае узнать номер позиции?Какой алгоритм применить?
Avazart
7102 / 5279 / 267
Регистрация: 10.12.2010
Сообщений: 23,290
Записей в блоге: 17
11.02.2013, 23:19     STL find #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
Marina_P
8 / 8 / 0
Регистрация: 11.02.2013
Сообщений: 67
11.02.2013, 23:20     STL find #9
Мне нужно работать с элементами,которые находятся в векторе за элементом а.Я думала,что через find я найду номер позиции,но не получается.
Avazart
7102 / 5279 / 267
Регистрация: 10.12.2010
Сообщений: 23,290
Записей в блоге: 17
11.02.2013, 23:21     STL find #10
Ну так работайте с ними через итератор.
Ev[G]eN
Эксперт С++
5096 / 1534 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
11.02.2013, 23:25     STL find #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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2013, 23:25     STL find
Еще ссылки по теме:

Функция find - C++
Что значит строчка: if(s.find(str,0) != -1)

Cannot find -lbgi - C++
Подскажите, пишу в Dec C++ простой графический код: #include &lt;graphics.h&gt; int main() { initwindow(400,300); // открыть окно для...

Функция find - C++
Почему не работает функция find?? Дело в библиотеке??Я смотрел проекты там она была написана с библиотекой &quot;stdafx.h&quot;..но у меня с этой...

find() from string! - C++
Ищу в строке вхождения подстроки, запоминаю номер. Если нашел, то удаляю подстроку и вставляю соответствующий ей ключ с той же позиции. ...

STL - C++
где можно почитать про STL очень подробно что бы исходные коды тоже были, какие структуры данных используются в реализации и тд тд тд ...


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

Или воспользуйтесь поиском по форуму:
Avazart
7102 / 5279 / 267
Регистрация: 10.12.2010
Сообщений: 23,290
Записей в блоге: 17
11.02.2013, 23:25     STL find #12
К примеру
C++
1
2
3
std::vector<int>::iterator it=find(x.begin(),x.end(),a);
 
 for(; it!=x.end() ; ++it)  *it= 5;  // присваиваем  всем элементам за "а" и самому "а"  значение "5"
Yandex
Объявления
11.02.2013, 23:25     STL find
Ответ Создать тему
Опции темы

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