gpt4 book ai didi

c++ - 在 C++ 中,如何按照从 map 中检索值的相同顺序从 vector 中检索值?

转载 作者:搜寻专家 更新时间:2023-10-31 01:01:02 25 4
gpt4 key购买 nike

我正在编写将对象存储到 map<string, vector<T> > 中的代码.这张 map 迭代地填充数据,分析数据,然后在一个大循环中写入文件。在该循环之前,我打开文件以写出每一列的内容,例如 # time var1 var2 var3 .问题是,我需要可靠地编写 var1 , var2 , 和 var3等等...在标题中以相同的顺序从 map 中检索它们。我现在使用一个丑陋的解决方法,带有一个 vector :

std::vector<std::string> header_names;
header_names.push_back("var1");
header_names.push_back("var2");
header_names.push_back("var3");
std::map<std::string, std::string> headers;
for(int i = 0; i < header_names.size(); i++) {
headers[header_names[i]] = header_names[i];
}
std::ofstream outputfile("out.txt");
outputfile << "# time ";
for(auto it = headers.begin(); it != headers.end(); ++it) {
outputfile << it->first << " ";
}

有没有更好的方法可以达到同样的效果?

编辑:

使用@Claudiu 的回答,我在这里初始化 map ,然后清除 vector s 是大循环开始时的值。

最佳答案

为什么不遍历 map 本身?这将保证您以与 map 本身相同的顺序检索它,因为它是 map 本身的顺序:

std::map<std::string, std::vector<T> > m = ...;

for (const auto& item : m)
{
outputfile << item.first << " ";
}

Ideone example .

关于c++ - 在 C++ 中,如何按照从 map 中检索值的相同顺序从 vector 中检索值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29855526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com