Вывод в поток массива вектора пар

178
01 августа 2018, 04:40
int main()
{
    int gg;
    typedef std::vector<std::pair<int, int>> VectorPairIntInt;
    typedef std::pair<int, int> PairIntToInt;
    PairIntToInt p;
    VectorPairIntInt vCt[100];
    for (int i = 0; i < 100; i++) {
        gg = rand() % 100;
        vCt[i].push_back(std::make_pair(i, gg));
    }
    for (int i = 0; i < 100; i++) {
        std::cout << &vCt[i] << std::endl;
    }
    return 0;
}

При попытке вывода в консоль выводит только адрес в памяти:

for (int i = 0; i < 100; i++) {
    std::cout << &vCt[i] << std::endl;
}

Как правильно вывести в поток first и second каждой пары из массива вектора?

Answer 1

Нужно два цикла: Один по массиву, второй по парам внутри этого массива.

for (int i = 0; i < 100; i++)
{
    std::cout << i << " = ";
    for (const auto &pair : vCt[i])
    {
        std::cout << pair.first << ":" << pair.second << "; ";
    }
    std::cout << "\n";
}
Answer 2

Через амперсанд & вы получаете адрес ячейки памяти, где хранится переменная. Через

VectorPairIntInt::iterator it = vCt.begin()

мы получаем указатель на первый элемент и далее проходим по вектору, пока не достигнем конца. Для каждого элемента мы можем получить поля first и second

#include <iostream>
#include <vector>
#include <cstdlib>
int main()
{
    int gg;
    typedef std::vector<std::pair<int, int> > VectorPairIntInt;
    VectorPairIntInt vCt;
    for (int i = 0; i < 100; i++) {
        gg = rand() % 100;
        vCt.push_back(std::make_pair(i, gg));
    }
    for (VectorPairIntInt::iterator it = vCt.begin(); it != vCt.end(); it++) {
        std::cout << "First: " << it->first  << " Second: " << it->second << std::endl;
    }
    return 0;
}
READ ALSO
curl_easy_init код ошибки / описание

curl_easy_init код ошибки / описание

Возможно ли узнать код ошибки и описание, если curl_easy_init завершился неудачно?

185
JavaFx. Caused by: java.lang.NullPointerException

JavaFx. Caused by: java.lang.NullPointerException

Я новичёк в JavaFxВ приложении есть DatePicker и Button

255
Обрезка видео android по длительности

Обрезка видео android по длительности

Мне нужно выбрать видео с галереи и если оно больше 10 секунд обрезатьВозможно есть какие то библиотеки, и есть пример кода где реализована...

187
Ошибка при обработке нажатия Preference

Ошибка при обработке нажатия Preference

Выдается ошибка при нажатии на preference:

192