如何用矢量填充地图?
How can I fill a map with a vector?
我有以下测试代码:
class Person{};
shared_ptr<Person> sp1;
shared_ptr<Person> sp2;
shared_ptr<Person> sp3;
vector<shared_ptr<Person>> members = {sp1,sp2,sp3};
map<string, shared_ptr<Person>> mymap;
如何将向量 members
设置为 mymap
的第二个元素?我尝试使用 for
和 copy
.
map
是关联容器,所以需要指定string
类型的key关联到shared_ptr<Person>
。我不知道你需要什么,但下面的循环应该可以工作:
for (size_t i = 0; i < members.size(); ++i) {
const std::string key = "sp" + std::to_string(i+1);
mymap[key] = members[i];
}
我有以下测试代码:
class Person{};
shared_ptr<Person> sp1;
shared_ptr<Person> sp2;
shared_ptr<Person> sp3;
vector<shared_ptr<Person>> members = {sp1,sp2,sp3};
map<string, shared_ptr<Person>> mymap;
如何将向量 members
设置为 mymap
的第二个元素?我尝试使用 for
和 copy
.
map
是关联容器,所以需要指定string
类型的key关联到shared_ptr<Person>
。我不知道你需要什么,但下面的循环应该可以工作:
for (size_t i = 0; i < members.size(); ++i) {
const std::string key = "sp" + std::to_string(i+1);
mymap[key] = members[i];
}