填充成对的矢量对没有按预期工作

时间:2018-05-09 22:24:52

标签: c++ vector std-pair keyvaluepair

我有以下代码填充包含一对对的矢量。

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 :(得分:0)

它按预期工作。用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;
}

请参阅this链接