如何用矢量填充地图?

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 的第二个元素?我尝试使用 forcopy .

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];
}