我有以下代码填充包含一对对的矢量。
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
答案 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链接