矢量值不在插入顺序中

时间:2011-01-27 15:40:18

标签: c++ sorting vector

我正在将值插入向量中:
    vector<map<vector<string> , vector<string> > > listedParameterMap;

像这样:
    listedParameterMap.insert(listedParameterMap.end(), 1, parameterMap);

如果稍后检查向量,则反转顺序。 我错过了什么吗?

修改
我想它可能在其他地方......我只是有个主意。但我明天会试试。 我今天几乎已经使用我的代码至少有一个脑堆栈溢出;)

无论如何,谢谢大家的帮助。我会告诉你是否有变化!

EDIT2:
似乎错误是在其他地方。我只能看到它发生的地方,但直到现在还没有原因。在地图应该只填充一次的点上,它会被填充两次。 由于某种原因,每次只对特定值。这就是为什么它看起来像是倒置了 如果我需要帮助,我会打开一个新问题。 谢谢大家!


更新

现在矢量还可以。发现了问题。自己代码的盲目性;)

它不会影响我的程序我的地图是倒置的 我刚刚创建了一个新的地图插入然后打印了这些值,然后按预期工作。

3 个答案:

答案 0 :(得分:7)

你为什么不写简单:

listedParameterMap.push_back(parameterMap);

它比您在帖子中所做的更简单。

答案 1 :(得分:2)

我无法理解您的示例代码,但如果您想按顺序将项目插入到矢量中,通常需要使用push_back。对于一个简单的例子:

std::vector<int> numbers;
for (int i=0; i<10; i++)
    numbers.push_back(i);

这些数字现在应按顺序排列,如:(1 2 3 4 5 6 7 8 9 10)。

答案 2 :(得分:0)

我真的不认为你想做一个使用矢量作为关键的地图,对吗?这有点像你有更重要的设计问题。

至于以已知(和预先存储的顺序)向向量添加内容,请使用push_back()。