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

Проверка есть ли элемент в векторе - C++

Восстановить пароль Регистрация
 
akaAxeL
66 / 66 / 30
Регистрация: 14.07.2013
Сообщений: 251
08.10.2013, 08:45     Проверка есть ли элемент в векторе #1
Если уже есть такой то увеличить счетчик для этого элемента, если нет то добавить. Как это сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2013, 08:45     Проверка есть ли элемент в векторе
Посмотрите здесь:

C++ Есть ли в данном массиве элемент, равный заданному числу? Если есть, то вывести номер одного из них.
Есть метод класса внутри , есть проверка. Если условие сходится то метод должен выдать указатель, иначе булевую переменную C++
Есть ли элемент который возвращает инфу на какой элемент иерархии C++
Существует ли элемент в "сложном" векторе C++
C++ Однонаправленный список. Операции: удалить элемент из заданной позиции, добавить элемент в заданную позицию,проверка на неравенство
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Firework
57 / 81 / 21
Регистрация: 01.04.2013
Сообщений: 567
08.10.2013, 09:17     Проверка есть ли элемент в векторе #2
C++
1
2
3
if ( std::find( vec.begin(), vec.end(), value ) != vec.end() )
    ++count;
else vec.push_back(value);
novi4ok
549 / 502 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
08.10.2013, 09:28     Проверка есть ли элемент в векторе #3
заменить вектор на map, и все будет хорошо.
akaAxeL
66 / 66 / 30
Регистрация: 14.07.2013
Сообщений: 251
08.10.2013, 13:36  [ТС]     Проверка есть ли элемент в векторе #4
Цитата Сообщение от Firework Посмотреть сообщение
C++
1
2
3
if ( std::find( vec.begin(), vec.end(), value ) != vec.end() )
    ++count;
else vec.push_back(value);
спасибо!

Добавлено через 6 минут
Да еще, а если у меня вот эта value объект класса, то тогда надо как-то оператор == задать
Петррр
 Аватар для Петррр
5917 / 3354 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
08.10.2013, 13:53     Проверка есть ли элемент в векторе #5
Цитата Сообщение от akaAxeL Посмотреть сообщение
то тогда надо как-то оператор == задать
Вы перегрузку операторов не знаете как делать?
Firework
57 / 81 / 21
Регистрация: 01.04.2013
Сообщений: 567
08.10.2013, 14:42     Проверка есть ли элемент в векторе #6
Цитата Сообщение от akaAxeL Посмотреть сообщение
Да еще, а если у меня вот эта value объект класса, то тогда надо как-то оператор == задать
Само собой. Если не знаете как сделать, выкладывайте описание класса.
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,309
08.10.2013, 14:47     Проверка есть ли элемент в векторе #7
Цитата Сообщение от akaAxeL Посмотреть сообщение
Да еще, а если у меня вот эта value объект класса, то тогда надо как-то оператор == задать
Ни в коем случае! Нужно определить для твоего класса operator<. Алгоритмы STL используют именно его для определения эквивалентности элементов контейнеров.
Firework
57 / 81 / 21
Регистрация: 01.04.2013
Сообщений: 567
08.10.2013, 15:26     Проверка есть ли элемент в векторе #8
CheshireCat,
Цитата Сообщение от CheshireCat Посмотреть сообщение
Ни в коем случае! Нужно определить для твоего класса operator<
Что за траву вы курите?

akaAxeL, не слушайте его. Покажите мне ваш класс, я напишу оператор ==.
Петррр
 Аватар для Петррр
5917 / 3354 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
08.10.2013, 15:40     Проверка есть ли элемент в векторе #9
Цитата Сообщение от CheshireCat Посмотреть сообщение
Ни в коем случае!
http://www.cplusplus.com/reference/algorithm/find/
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,309
08.10.2013, 15:44     Проверка есть ли элемент в векторе #10
Да, согласен, был не прав.
akaAxeL
66 / 66 / 30
Регистрация: 14.07.2013
Сообщений: 251
08.10.2013, 21:04  [ТС]     Проверка есть ли элемент в векторе #11
Цитата Сообщение от Firework Посмотреть сообщение
Само собой. Если не знаете как сделать, выкладывайте описание класса.
вообщем вот
C++
1
2
3
4
5
6
7
8
9
10
11
class Item
{
public:
    Item(string name);
    int itsCount;
    string itsName;
private:
    
    
    vector<string> itsTicks;
    vector<string> itsValues;
соответственно имея такой вот текстовый файл:
собака 23 12
кот 44 23
кот 23 12
кот 33 2
собака 3 2

Должны получить два объекта класса
C++
1
2
3
4
5
6
7
8
9
10
11
class Item
{
public:
    Item(собака);
    int itsCount = 2;
    string itsName = собака;
private:
    
    
    vector<string> {23, 3};
    vector<string> {12, 2};
ну и для кота также, собственно грубо вот так.
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
08.10.2013, 21:29     Проверка есть ли элемент в векторе #12
C++
1
2
3
4
5
6
7
8
9
10
class Item
{
public:
    Item(string name) : itsName(name) { }
    static int itsCount;
    string itsName;
    bool operator == (const Item& val) {
        return itsName == val.itsName;
    }
};
Добавлено через 1 минуту
Поле itsCout нужно сделать статическим, если хотите считать объекты класса.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2013, 14:45     Проверка есть ли элемент в векторе
Еще ссылки по теме:

C++ Как в векторе вставить элемент перед данным
В вещественном векторе найти наибольший элемент и поменять его с первым элементом C++
C++ Перегрузить "operator -" так, чтобы из вектора удалялся элемент, присутствующий во втором векторе

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

Или воспользуйтесь поиском по форуму:
akaAxeL
66 / 66 / 30
Регистрация: 14.07.2013
Сообщений: 251
09.10.2013, 14:45  [ТС]     Проверка есть ли элемент в векторе #13
Цитата Сообщение от SummerRain Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
class Item
{
public:
    Item(string name) : itsName(name) { }
    static int itsCount;
    string itsName;
    bool operator == (const Item& val) {
        return itsName == val.itsName;
    }
};
Добавлено через 1 минуту
Поле itsCout нужно сделать статическим, если хотите считать объекты класса.
Если я так пишу то у меня счетчик будет равен общему числу котов и собак вместе.
Yandex
Объявления
09.10.2013, 14:45     Проверка есть ли элемент в векторе
Ответ Создать тему
Опции темы

Текущее время: 05:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru