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

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

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

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

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

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

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

C++ Как удалить первый элемент из std::list?
C++ Удалить элемент из std::vector
C++ Как узнать какой по номеру элемент найден алгоритмом find
C++ std::map find. Получить ключ(элемент) и как записать все данные при объявлений?
Удалить первый совпадающий по значению элемент из std::vector C++
std::string::find и кириллица C++
Как минимально просто использовать функция std::find с последовательность типа : list<myClass*> C++
C++ Std::vector добавить новый элемент собственного класса без использования конструктора копирования
C++ Теряю ссылку на элемент в std::vector после того, как делаю push_back следующего элемента
Переместить элемент внутри списка std::list C++
Std::multiset::find C++
C++ _InIt std::find(): в шаблон параметр "_InIt" неоднозначен. Как исправить?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6550 / 3970 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
17.12.2011, 18:42     std:: find Не нашла элемент #2
Цитата Сообщение от Даня98 Посмотреть сообщение
Я почитал, что возвращает итератор на последний элемент
end - это не последний элемент, а элемент находящийся за последним
Mиxaил
531 / 436 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
17.12.2011, 18:50     std:: find Не нашла элемент #3
последний - rend();
Даня98
28 / 28 / 8
Регистрация: 13.02.2010
Сообщений: 145
17.12.2011, 19:00  [ТС]     std:: find Не нашла элемент #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 элемент... или та же проблема?
sandye51
программист С++
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
17.12.2011, 19:05     std:: find Не нашла элемент #5
Цитата Сообщение от Mиxaил Посмотреть сообщение
последний - rend();
end() (с каким либо профексом) это не содержит элемента, его нельзя разыменовывать
Даня98
28 / 28 / 8
Регистрация: 13.02.2010
Сообщений: 145
17.12.2011, 19:05  [ТС]     std:: find Не нашла элемент #6
все, дошло всё. Всем спасибо
Yandex
Объявления
17.12.2011, 19:05     std:: find Не нашла элемент
Ответ Создать тему
Опции темы

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