Заполнение вектора пар парами не работает должным образом - PullRequest
0 голосов
/ 10 мая 2018

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

std::vector<std::pair<double, std::pair<int, int>>> vec;
int x=100, y=10, z=20;
vec.push_back(std::make_pair((double)x,std::make_pair(y,z)));
for(int i=0;i<vec.size();i++){
    std::cout<<"x: "<<vec[i].first<<"\n";
    std::cout<<"y: "<<vec[i].second.first<<"\n";
    std::cout<<"z: "<<vec[i].second.second<<"\n";
}

Выход:

x: 0
y: 0
z: 0

Почему печать не выполняется следующим образом?

x: 100.0
y: 10
z: 20

1 Ответ

0 голосов
/ 10 мая 2018

Работает как положено. Протестировано с компилятором G ++. Проблем не обнаружено.

#include <bits/stdc++.h>
using namespace std;

int main() {
    // your code goes here
    std::vector<std::pair<double, std::pair<int, int>>> vec;
    int x = 100, y = 10, z = 20;
    vec.push_back(std::make_pair((double)x, std::make_pair(y, z)));
    for (int i = 0; i < vec.size(); i++) {
        std::cout << "x: " << vec[i].first << "\n";
        std::cout << "y: " << vec[i].second.first << "\n";
        std::cout << "z: " << vec[i].second.second << "\n";
    }

    return 0;
}

Пожалуйста, обратитесь эта ссылка

...