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

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

Войти
Регистрация
Восстановить пароль
 
akaAxeL
66 / 66 / 30
Регистрация: 14.07.2013
Сообщений: 251
#1

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

08.10.2013, 08:45. Просмотров 949. Ответов 12
Метки нет (Все метки)

Если уже есть такой то увеличить счетчик для этого элемента, если нет то добавить. Как это сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2013, 08:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверка есть ли элемент в векторе (C++):

Как в векторе вставить элемент перед данным - C++
Например есть вектор из 5 элементов :1,2,3,4,5 мне нужно вставить например число 6 перед 5 эллементом, чтобы было 1,2,3,4,6,5

В заданном векторе найти максимальный нечётный элемент - C++
Постройте график функции на промежутке В векторе V, состоящем из n элементов ,найти максимальный несчетный элемент

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

В вещественном векторе найти наибольший элемент и поменять его с первым элементом - C++
Буду очень признателен за помощь.

Однонаправленный список. Операции: удалить элемент из заданной позиции, добавить элемент в заданную позицию,проверка на неравенство - C++
Помогите. Есть одна написанная. Условия: Очередь. Операции: “+” добавить элемент ; “-“ удалить элемент ; bool() проверка «Пуста...

Перегрузить "operator -" так, чтобы из вектора удалялся элемент, присутствующий во втором векторе - C++
#include "stdafx.h" #include <conio.h> #include <iostream> #include <string> using namespace std; typedef unsigned int...

12
Firework
64 / 88 / 23
Регистрация: 01.04.2013
Сообщений: 601
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);
1
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
08.10.2013, 09:28 #3
заменить вектор на map, и все будет хорошо.
0
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 объект класса, то тогда надо как-то оператор == задать
0
Петррр
5972 / 3409 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
08.10.2013, 13:53 #5
Цитата Сообщение от akaAxeL Посмотреть сообщение
то тогда надо как-то оператор == задать
Вы перегрузку операторов не знаете как делать?
0
Firework
64 / 88 / 23
Регистрация: 01.04.2013
Сообщений: 601
08.10.2013, 14:42 #6
Цитата Сообщение от akaAxeL Посмотреть сообщение
Да еще, а если у меня вот эта value объект класса, то тогда надо как-то оператор == задать
Само собой. Если не знаете как сделать, выкладывайте описание класса.
0
CheshireCat
Эксперт С++
2896 / 1245 / 78
Регистрация: 27.05.2008
Сообщений: 3,405
08.10.2013, 14:47 #7
Цитата Сообщение от akaAxeL Посмотреть сообщение
Да еще, а если у меня вот эта value объект класса, то тогда надо как-то оператор == задать
Ни в коем случае! Нужно определить для твоего класса operator<. Алгоритмы STL используют именно его для определения эквивалентности элементов контейнеров.
1
Firework
64 / 88 / 23
Регистрация: 01.04.2013
Сообщений: 601
08.10.2013, 15:26 #8
CheshireCat,
Цитата Сообщение от CheshireCat Посмотреть сообщение
Ни в коем случае! Нужно определить для твоего класса operator<
Что за траву вы курите?

akaAxeL, не слушайте его. Покажите мне ваш класс, я напишу оператор ==.
1
Петррр
5972 / 3409 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
08.10.2013, 15:40 #9
Цитата Сообщение от CheshireCat Посмотреть сообщение
Ни в коем случае!
http://www.cplusplus.com/reference/algorithm/find/
0
CheshireCat
Эксперт С++
2896 / 1245 / 78
Регистрация: 27.05.2008
Сообщений: 3,405
08.10.2013, 15:44 #10
Да, согласен, был не прав.
1
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};
ну и для кота также, собственно грубо вот так.
0
SummerRain
327 / 326 / 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 нужно сделать статическим, если хотите считать объекты класса.
1
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 нужно сделать статическим, если хотите считать объекты класса.
Если я так пишу то у меня счетчик будет равен общему числу котов и собак вместе.
0
09.10.2013, 14:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2013, 14:45
Привет! Вот еще темы с ответами:

Существует ли элемент в "сложном" векторе - C++
Здравствуйте, недавно столкнулся с такой проблемой Есть такая структура и последующий вектор: struct cell { char symbol; int...

Есть ли в данном массиве элемент, равный заданному числу? Если есть, то вывести номер одного из них. - C++
Есть ли в данном массиве элемент, равный заданному числу? Если есть, то вывести номер одного из них. Напишите программу пожалуйста,очень...

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

Есть ли элемент который возвращает инфу на какой элемент иерархии - C++
... Поинтор сейчас поинтит ??? Допустим есть Абстрактный папа я делаю в мейне поинтор этого папы заряжаю его на какого ниб...


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

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

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