gpt4 book ai didi

c++ - 第二次将 map 插入 vector 失败

转载 作者:行者123 更新时间:2023-11-28 08:23:57 25 4
gpt4 key购买 nike

我有一个错误,我无法确定它发生在以下位置:

我实际上正在使用其中包含 vector 的 map :
map<vector<string> , vector<string> > parameterMap;

因为我需要其中的一些(多少在运行时决定)我将它们放入一个列表( vector )中:方法头部的 vector 声明:
vector<map<vector<string> , vector<string> > > listedParameterMap;

将 map 插入 vector :
listedParameterMap.insert(listedParameterMap.end(), 1, parameterMap);

这个程序第一次运行良好。第二次( map 填写正确)它不起作用。
我注意到一件事:我给出了 map 的大小:
cout << "listedParameterMap " << listedParameterMap.size();
第二次显示size2watch显示仍为1。它还向我显示有线内容:

截图: alt text

Last应该包含类似 First 的内容插入的第二张 map 已正确填充。 vector 相同:part1_inputpart2_output

代码:

for (unsigned int index = 0; index < part1_input.size(); index++) {
map<vector<string> , vector<string> > parameterMap;
parameterMap.insert
(pair<vector<string> , vector<string> > (part1_input[index], part2_output[index]));
listedParameterMap.insert(listedParameterMap.end(), 1, parameterMap);
cout << "listedParameterMap " << listedParameterMap.size();
}

我真的很感激任何关于为什么会发生这种情况的想法......



编辑:

“解决方案”是打印出来的东西。监 window 口未显示正确的值。这意味着我的问题是在其他地方引起的。但这在这里得到了回答。感谢任何试图帮助我的人!

最佳答案

我希望看到一个测试,您可以从您的收藏中输出一些东西,看看您是否看到了您认为应该看到的东西。其实为什么不写一个合适的单元测试呢?

您正在按值传递大量集合。这可能非常昂贵,但此外,您可能正在更新一些您认为实际正在更新的内容的拷贝,然后看不到原始结果。

我不会过多关注 Visual Studio 的“观察”窗口中的值,尤其是在您运行优化构建时。

关于c++ - 第二次将 map 插入 vector 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4747263/

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