如何用向量填充地图?

发布于 2025-01-27 12:05:45 字数 364 浏览 3 评论 0原文

我有以下测试代码:

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;

如何将vector 成员设置为mymap的第二个元素?我尝试了和复制

I have the following test code:

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;

How can I set the vector members to the second element of mymap? I tried with for and copy .

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吃素的狼 2025-02-03 12:05:45

MAP是一个关联容器,因此您需要在String中指定键将其关联到sharone_ptr&lt; person&gt;。我不知道您需要什么,但是以下循环应该有效:

for (size_t i = 0; i < members.size(); ++i) {
  const std::string key = "sp" + std::to_string(i+1);
  mymap[key] = members[i];
}

map is an associative container, so you need to specify the key in string type to associate it to the shared_ptr<Person>. I don't know what you need, but the following loop should work:

for (size_t i = 0; i < members.size(); ++i) {
  const std::string key = "sp" + std::to_string(i+1);
  mymap[key] = members[i];
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文