gpt4 book ai didi

c++ - 回推到静态 vector 中的 vector

转载 作者:行者123 更新时间:2023-11-28 07:01:46 26 4
gpt4 key购买 nike

关于静态 vector 和推回的问题...

这个想法是一个 vector 存储一对字符串和另一个 vector ......

[0] foo1: bar1,bar2...[1] foo2: bar3,bar4...

我在 h 文件中声明了这个 vector :

class thing
{
public:
...
static std::vector<std::pair<std::string, std::vector<std::string>>> things;
...
}

在cpp文件中:

vector<pair<string,vector<string>>> thing::things;

我可以用一个简单的方法创建 vector 的第一个条目:

typedef pair<string,vector<string>> p;
p P;
P.first = foo;
P.second.push_back(bar1);

但是,当我尝试更新内部对 vector 时:

typedef pair<string,vector<string>> p;

BOOST_FOREACH(p P, thing::things)
{
if(P.first==foo)
{
P.second.push_back(bar2);
}
}

thing::things vector 没有用第二个值更新...

有什么帮助吗?

谢谢!

最佳答案

如果你想修改元素,那么你需要一个引用:

BOOST_FOREACH(p & P, thing::things)
{
if(P.first==foo)
{
P.second.push_back(bar2);
}
}

就像您使用它一样,它会创建每个元素的拷贝。

关于c++ - 回推到静态 vector 中的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22346304/

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