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

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

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

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

17.12.2011, 18:19. Просмотров 1189. Ответов 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 Не нашла элемент
Посмотрите здесь:

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

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

_InIt std::find(): в шаблон параметр "_InIt" неоднозначен. Как исправить? - C++
У меня есть двусвязный список. И вот я пытаюсь вызвать функцию find: pred = find(index - 1, head, valcount); pv-&gt;next = pred-&gt;next; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
17.12.2011, 18:42     std:: find Не нашла элемент #2
Цитата Сообщение от Даня98 Посмотреть сообщение
Я почитал, что возвращает итератор на последний элемент
end - это не последний элемент, а элемент находящийся за последним
Mиxaил
533 / 438 / 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
программист С++
682 / 584 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
17.12.2011, 19:05     std:: find Не нашла элемент #5
Цитата Сообщение от Mиxaил Посмотреть сообщение
последний - rend();
end() (с каким либо профексом) это не содержит элемента, его нельзя разыменовывать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2011, 19:05     std:: find Не нашла элемент
Еще ссылки по теме:

Удалить элемент из std::vector - C++
vector&lt;int&gt; k; надо удалить k элемент.

Как узнать какой по номеру элемент найден алгоритмом find - C++
Как можно узнать какой по номеру элемент найден через функцию find, например: list&lt;string&gt;::iterator iter; cin &gt;&gt;number; ...

Переместить элемент внутри списка std::list - C++
Что-то я не пойму, простая вроде задача - переместить элемент внутри спиcка std::list - стандартной функции нету что-ли?

Как удалить первый элемент из std::list? - C++
Скажите как удалить первый элемент из лист ругается вот как 181 C:\Documents and Settings\Loner\Рабочий стол\5.37\Bin.cpp 'class...

Удалить первый совпадающий по значению элемент из std::vector - C++
Пояснение: дано допустим так: int i = 5; Нужно удалить из вектора vector&lt;int&gt; первый попавшийся элемент со значением 5. Сам уж себя в...

Std::vector добавить новый элемент собственного класса без использования конструктора копирования - C++
Всем привет! Есть один класс, который я хочу хранить в std::vector. Создать массив, с типом своего класса, грубо говоря. Естественно,...


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

Или воспользуйтесь поиском по форуму:
Даня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