Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Даня98
28 / 28 / 8
Регистрация: 13.02.2010
Сообщений: 145
#1

std:: find Не нашла элемент - C++

17.12.2011, 18:19. Просмотров 1349. Ответов 5
Метки нет (Все метки)

Как узнать, что std:: find не нашла элемент?

Я почитал, что возвращает итератор на последний элемент... Т.е. почему у меня при
C++
1
*std:: find (a.begin(),a.end(),5)
выбивает из проги, из-за того, что элемент не найден?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2011, 18:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос std:: find Не нашла элемент (C++):

std::map find. Получить ключ(элемент) и как записать все данные при объявлений? - C++
Вопрос первый: как получить ключ контейнера map по данным? например: // id, name std::map<int, string> BookMap; BookMap bookmap; ...

Std::multiset::find - C++
Каким образом функция сравнивает элементы, если я не перегрузил == У меня в классе два поля, она сравнивает их оба на соответствие? ...

std::string::find и кириллица - C++
есть простенький код #include <iostream> // std::cout #include <string> // std::string int main () { ...

Передача функции указатель на элемент std::vector<std::string> - C++
Доброй ночи тем, кому не спится (или живет в другом часовом поясе:p)! Есть функция, требующая в качестве параметра указатель на...

Как минимально просто использовать функция std::find с последовательность типа : list<myClass*> - C++
Добрый день. Как минимально просто использовать функция std::find с последовательность типа : list&lt;myClass*&gt;,если в классе перегружен...

"range-base for" и проверка на последний элемент в std::set<std::string> - C++
Добрый день. Голова совсем не варит. Как мне организовать простую проверку на послений элемент без введения счетчика а просто сравнивая...

5
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
17.12.2011, 18:42 #2
Цитата Сообщение от Даня98 Посмотреть сообщение
Я почитал, что возвращает итератор на последний элемент
end - это не последний элемент, а элемент находящийся за последним
1
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
17.12.2011, 18:50 #3
последний - rend();
1
Даня98
28 / 28 / 8
Регистрация: 13.02.2010
Сообщений: 145
17.12.2011, 19:00  [ТС] #4
Mиxaил, вот такой
код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <algorithm>
#include <vector>
 
int main()
{
    std:: vector <int> a;
    int n,temp;
    std:: cin >> n;
 
    for (int i=0; i<n; ++i)
    {
        std:: cin >> temp;
        a.push_back(temp);
    }
 
 
    std:: cout << *a.rend() << "\n";
    system ("pause");
    return 0;
}
не работает.

А
такой
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <algorithm>
#include <vector>
 
int main()
{
    std:: vector <int> a;
    int n,temp;
    std:: cin >> n;
 
    for (int i=0; i<n; ++i)
    {
        std:: cin >> temp;
        a.push_back(temp);
    }
 
 
    std:: cout << *a.rbegin() << "\n";
    system ("pause");
    return 0;
}
работает (и указывает на конец). Почему неработает 1 код?

Добавлено через 27 секунд
ведь указатель вроде ж на 1 элемент... или та же проблема?
0
sandye51
программист С++
685 / 587 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
17.12.2011, 19:05 #5
Цитата Сообщение от Mиxaил Посмотреть сообщение
последний - rend();
end() (с каким либо профексом) это не содержит элемента, его нельзя разыменовывать
1
Даня98
28 / 28 / 8
Регистрация: 13.02.2010
Сообщений: 145
17.12.2011, 19:05  [ТС] #6
все, дошло всё. Всем спасибо
0
17.12.2011, 19:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2011, 19:05
Привет! Вот еще темы с ответами:

Emplace в std::map. Как добавить элемент в std::map без копирования? - C++
здравствуйте... есть ли способ не писать так: std::map&lt;int, char&gt; ksa; ksa.emplace(std::piecewise_construct, ...

Не воспринимает ни std::cout, ни std::cin. Вобщем ничего из std. Также не понимает iostream - C++
Здравствуйте! Я хотел начать изучать язык C++. Набрал литературы. Установил Microsoft Visual C++ 2005 Express Edition. Образ диска...

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri - C++
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

STL std::set, std::pair, std::make_pair - C++
Я не знаю как описать тему в двух словах, поэтому не обращайте внимание на название темы. Собственно перейдем к нашим баранам: есть...


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

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

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