gpt4 book ai didi

c++ - 如何从成对的初始化列表构造对象?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:41:37 25 4
gpt4 key购买 nike

在这段代码中,我尝试使用 pair(int,pair(string,string)) 的 initializer_list 来初始化类对象,但是在初始化 map(int,pair(string,string) 类型的类成员 map2 时出现错误).

这是我的代码

#include <iostream>
#include <string>
#include <initializer_list>
#include <map>
using namespace std;

class contact{
private:

map <int,pair<string,string>> map2;

public:

contact(initializer_list<pair<int,pair<string,string>>> m):map2(m){}
void display(){
for (const auto& it:map2){
cout<<it.first;
}
}
};

int main() {
contact obj{
make_pair(4,make_pair("parul","agrawal")),
make_pair(5,make_pair("keshav","agrawal")),
};

obj.display();
return 0;
}

最佳答案

map 元素有 const 键。

改变

contact(initializer_list<pair<int, pair<string, string>>> m) : map2(m) {}

contact(initializer_list<pair<const int, pair<string, string>>> m) : map2(m) {}

附带说明一下,您也可以放弃 make_pair():

contact obj
{
{4, {"parul", "agrawal"}},
{5, {"keshav", "agrawal"}},
};

关于c++ - 如何从成对的初始化列表构造对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55555084/

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