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

问题描述 投票:0回答:1

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

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
c++ vector std-pair keyvaluepair
1个回答
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链接

© www.soinside.com 2019 - 2024. All rights reserved.