Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/55: Рейтинг темы: голосов - 55, средняя оценка - 4.75
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 905
1

Вектор пар

25.10.2017, 01:02. Показов 10508. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream> 
#include <fstream> 
#include <vector> 
#include <utility> 
#include<algorithm>
 
using namespace std;
 
int main()
{
    vector<pair<int, int>> p = {
        { 7,3 },
        { 3,5 },
        { 4,8 },
        { 2,4 },
        { 1,2 },
        { 11,10 },
        { 9,11 },
        { 0,7 },
        { 8,6 },
        { 5,1 },
        { 6,9 },
        { 10,0 },
    };
 
    vector<pair<int, int>>::iterator it = p.begin();
    it = find(it, p.end(), 0);
    
    while (it->second != 0)
    {
        cout << it->second<<" ";
        int t = it->second;
        it = find(it, p.end(), t);
    }
 
    system("pause");
    return 0;
}
Начиная с 0 ищу по полю first цифру и та цифра которая в second должна найтись в следующем first и т.д., т.е вывод подразумеваю такой: 3, 5, 8, 4, 2, 10, 11, 7, 6, 1, 9.
Но выводится какая то ошибка:
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка C2678 бинарный "==": не найден оператор, принимающий левый операнд типа "std:air<int,int>" (или приемлемое преобразование отсутствует) vect3 c:\program files (x86)\microsoft visual studio 14.0\vc\include\xutility 3152


it = find(it, p.end(), 0); здесь я подразумеваю что вернется позиция где 0 в first.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2017, 01:02
Ответы с готовыми решениями:

Вектор пар. Как вводить?
void setPoint() override { string tmp1 = &quot;&quot;; bool flag = 0; ...

Неверно выводит вектор пар
Здравствуйте. Цикл выводит нули вместо ожидаемых чисел. В чем же ошибка #include&lt;iostream&gt;...

Вектор пар и бинарный поиск
Всем доброго времени суток. Решаю следующую задачу. Есть vector &lt;pair&lt;int,int&gt;&gt; v ...

Некорректно выводит вектор пар <int, string*>
vector&lt;pair&lt;int, string*&gt; &gt; a; vector&lt;string&gt; strs; int n; int main () #include &lt;iostream&gt;...

2
1352 / 851 / 365
Регистрация: 26.02.2015
Сообщений: 3,799
25.10.2017, 01:09 2
Может быть лучше воспользоваться map?

Добавлено через 2 минуты
В вашем случае ошибка в том, что вы сравниваете значение 0 со структурой pair, а не с одним из его значений.
Первая ссылка Google по Вашему вопросу предлагает такой код:
C++
1
2
auto it = std::find_if( sortList.begin(), sortList.end(),
    [](const std::pair<std::string, int>& element){ return element.first == User.name;} );
1
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
25.10.2017, 11:41 3
std::unordered_map

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <unordered_map>
 
int main()
{
    const std::unordered_map<int, int> um = {
        { 7,3 },
        { 3,5 },
        { 4,8 },
        { 2,4 },
        { 1,2 },
        { 11,10 },
        { 9,11 },
        { 0,7 },
        { 8,6 },
        { 5,1 },
        { 6,9 },
        { 10,0 },
    };
    for (auto it = um.cbegin(); it != um.cend() && it->second; it = um.find(it->second))
        std::cout << it->second << " ";
}
0
25.10.2017, 11:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.10.2017, 11:41
Помогаю со студенческими работами здесь

Не удается объявить вектор пар как свойство класса
class MyClass { private: std::vector&lt;pair&lt;unsigned char, float&gt;&gt; Symbols; public: }

Считать в вектор пар все числа, отличные от нуля
У меня такая задача: считать в вектор пар все числа, отличные от нуля. В паре - первое число -...

Есть вектор пар, как положить туда значение пары через push_back
Есть вот такой вектор vector&lt;vector&lt;pair&lt;int, int&gt;&gt;&gt; number_pair; размер number_pair.size() ...

Для встречающихся в заданном тексте пар расположенных символов указать, сколько раз встречается каждое из таких пар.
Для встречающихся в заданном тексте пар расположенных символов указать, сколько раз встречается...

Для встречающихся в заданном тексте пар расположенных символов указать, сколько раз встречается каждое из таких пар
помогите пожалуйста решить Для встречающихся в заданном тексте пар расположенных символов...

Класс "вектор" с конструкторами, позволяющими создать нулевой вектор и вектор с произвольным числом элементов
Привет! Задача следующая. Нужно реализовать класс &quot;вектор&quot; с конструкторами, которые позволяют...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru