【发布时间】:2014-03-12 08:52:04
【问题描述】:
关于静态向量和后推的问题...
这个想法是一个向量存储一对字符串和另一个向量......
[0] foo1: bar1,bar2... [1] foo2: bar3,bar4...
我在 h 文件中声明了这个向量:
class thing
{
public:
...
static std::vector<std::pair<std::string, std::vector<std::string>>> things;
...
}
在cpp文件中:
vector<pair<string,vector<string>>> thing::things;
我可以用一个简单的方法创建向量的第一个条目:
typedef pair<string,vector<string>> p;
p P;
P.first = foo;
P.second.push_back(bar1);
但是,当我尝试更新内部对向量时:
typedef pair<string,vector<string>> p;
BOOST_FOREACH(p P, thing::things)
{
if(P.first==foo)
{
P.second.push_back(bar2);
}
}
未使用第二个值更新的 thing::things 向量...
有什么帮助吗?
谢谢!
【问题讨论】:
-
如果你使用标准循环也会发生同样的情况吗?
-
嗨,奇怪,标准循环工作正常...但我仍然想知道为什么...朋友胡安...