请教如何对MAP进行初始化?谢谢

oracleperl 2019-12-26 02:03:02
请教如何对MAP进行初始化?谢谢
...全文
375 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
taodm 2020-01-15
  • 打赏
  • 举报
回复
哎,楼主,还是找本C++最基础教材认真从头学吧。 C++的类对象,像你这么写map<string, int> m;,会用默认构造函数来初始化的。 所以,是已经初始化了。 附带:对于自定义的类,提供正确的默认构造函数,是程序员的基本职责。
oracleperl 2020-01-15
  • 打赏
  • 举报
回复
求助....
待续_1006 2020-01-15
  • 打赏
  • 举报
回复

没有数据的话,下标可以初始化,但是有个问题,同样的下标数据会被覆盖,map的key具有唯一性
待续_1006 2020-01-15
  • 打赏
  • 举报
回复
没有数据的话,下表可以初始化,但是有个问题,同样的下标数据会被覆盖,map的key具有唯一性
oracleperl 2020-01-15
  • 打赏
  • 举报
回复
引用 15 楼 taodm 的回复:
哎,楼主,还是找本C++最基础教材认真从头学吧。 C++的类对象,像你这么写map<string, int> m;,会用默认构造函数来初始化的。 所以,是已经初始化了。 附带:对于自定义的类,提供正确的默认构造函数,是程序员的基本职责。
多谢了
真相重于对错 2020-01-11
  • 打赏
  • 举报
回复
引用 11 楼 oracleperl 的回复:
[quote=引用 10 楼 ganwenbo2011 的回复:] [quote=引用 9 楼 oracleperl 的回复:] [quote=引用 8 楼 ganwenbo2011 的回复:] [quote=引用 4 楼 oracleperl 的回复:] [quote=引用 3 楼 ganwenbo2011 的回复:] 通过直接赋值或 insert插入
那假设 就是没有值要inert呢 map的值我是从数据库select出来的,也可能没有记录,怎么办? 普通的标量,我可以 int A=0或者ina A=NULL;就初始化了 map怎么办? 谢谢[/quote] 如果数据库有记录,对select结果进行赋值 插入就行了,没有记录map就为空呀,还要怎么初始化? [/quote] 请教这样算初始化了? typedef map<unsigned int,string> map_test; map_test::iterator iter; map_test mymap; 我定义个整形变量,必须 int a=0;或者int a=NULL;才算初始化对吧?也就是赋初值。 那么map呢?我并没有赋予初值啊。 如果插入一个key,可是我数据库select并没有记录啊,我不需要插入key和value啊 [/quote] 以赋值的形式就行呀,变量的初始化不就是定义同时对其赋初始值值。容器也一样的呀,
std::unordered_map<std::string, size_t> people {{"Jan",20}, {"Jim", 33}, {"Joe", 18}};
或者
std::unordered_map<std::string, size_t> people;
	people["Jan"] = 20;
	people["Jim"] = 33;
	people["Joe"] = 18;
[/quote] 谢谢,可是我不需要值啊,我希望这个容器是空的,没有记录,但是要可以find,且不会报错 普通的标量,如果没有初始化,是要出错的 初始化和赋值是两回事把? int a=null;也算初始化了把[/quote] 你的意思是这样?
map<string, int> m;
	string str;
	for(int i=0;i<10;++i)
	{
		cin >> str;
		m[str] = i;
	}
oracleperl 2020-01-11
  • 打赏
  • 举报
回复
引用 10 楼 ganwenbo2011 的回复:
[quote=引用 9 楼 oracleperl 的回复:] [quote=引用 8 楼 ganwenbo2011 的回复:] [quote=引用 4 楼 oracleperl 的回复:] [quote=引用 3 楼 ganwenbo2011 的回复:] 通过直接赋值或 insert插入
那假设 就是没有值要inert呢 map的值我是从数据库select出来的,也可能没有记录,怎么办? 普通的标量,我可以 int A=0或者ina A=NULL;就初始化了 map怎么办? 谢谢[/quote] 如果数据库有记录,对select结果进行赋值 插入就行了,没有记录map就为空呀,还要怎么初始化? [/quote] 请教这样算初始化了? typedef map<unsigned int,string> map_test; map_test::iterator iter; map_test mymap; 我定义个整形变量,必须 int a=0;或者int a=NULL;才算初始化对吧?也就是赋初值。 那么map呢?我并没有赋予初值啊。 如果插入一个key,可是我数据库select并没有记录啊,我不需要插入key和value啊 [/quote] 以赋值的形式就行呀,变量的初始化不就是定义同时对其赋初始值值。容器也一样的呀,
std::unordered_map<std::string, size_t> people {{"Jan",20}, {"Jim", 33}, {"Joe", 18}};
或者
std::unordered_map<std::string, size_t> people;
	people["Jan"] = 20;
	people["Jim"] = 33;
	people["Joe"] = 18;
[/quote] 谢谢,可是我不需要值啊,我希望这个容器是空的,没有记录,但是要可以find,且不会报错 普通的标量,如果没有初始化,是要出错的 初始化和赋值是两回事把? int a=null;也算初始化了把
oracleperl 2020-01-11
  • 打赏
  • 举报
回复
引用 12 楼 真相重于对错 的回复:
[quote=引用 11 楼 oracleperl 的回复:] [quote=引用 10 楼 ganwenbo2011 的回复:] [quote=引用 9 楼 oracleperl 的回复:] [quote=引用 8 楼 ganwenbo2011 的回复:] [quote=引用 4 楼 oracleperl 的回复:] [quote=引用 3 楼 ganwenbo2011 的回复:] 通过直接赋值或 insert插入
那假设 就是没有值要inert呢 map的值我是从数据库select出来的,也可能没有记录,怎么办? 普通的标量,我可以 int A=0或者ina A=NULL;就初始化了 map怎么办? 谢谢[/quote] 如果数据库有记录,对select结果进行赋值 插入就行了,没有记录map就为空呀,还要怎么初始化? [/quote] 请教这样算初始化了? typedef map<unsigned int,string> map_test; map_test::iterator iter; map_test mymap; 我定义个整形变量,必须 int a=0;或者int a=NULL;才算初始化对吧?也就是赋初值。 那么map呢?我并没有赋予初值啊。 如果插入一个key,可是我数据库select并没有记录啊,我不需要插入key和value啊 [/quote] 以赋值的形式就行呀,变量的初始化不就是定义同时对其赋初始值值。容器也一样的呀,
std::unordered_map<std::string, size_t> people {{"Jan",20}, {"Jim", 33}, {"Joe", 18}};
或者
std::unordered_map<std::string, size_t> people;
	people["Jan"] = 20;
	people["Jim"] = 33;
	people["Joe"] = 18;
[/quote] 谢谢,可是我不需要值啊,我希望这个容器是空的,没有记录,但是要可以find,且不会报错 普通的标量,如果没有初始化,是要出错的 初始化和赋值是两回事把? int a=null;也算初始化了把[/quote] 你的意思是这样?
map<string, int> m;
	string str;
	for(int i=0;i<10;++i)
	{
		cin >> str;
		m[str] = i;
	}
[/quote] 这个是往map里添加记录吧? 我不需要往map添加记录(事实上就是没有就,从数据库select没有记录),怎样实现初始化?
真相重于对错 2019-12-31
  • 打赏
  • 举报
回复
map<int,string> m; m[0]="123"; m[1]="234";
真相重于对错 2019-12-31
  • 打赏
  • 举报
回复
map<int, string> m = { {1,"123"},{2,"345"} };
oracleperl 2019-12-31
  • 打赏
  • 举报
回复
求助,谢谢.
wbgan1994 2019-12-31
  • 打赏
  • 举报
回复
引用 9 楼 oracleperl 的回复:
[quote=引用 8 楼 ganwenbo2011 的回复:]
[quote=引用 4 楼 oracleperl 的回复:]
[quote=引用 3 楼 ganwenbo2011 的回复:]
通过直接赋值或 insert插入

那假设 就是没有值要inert呢
map的值我是从数据库select出来的,也可能没有记录,怎么办?
普通的标量,我可以 int A=0或者ina A=NULL;就初始化了
map怎么办?

谢谢[/quote]

如果数据库有记录,对select结果进行赋值 插入就行了,没有记录map就为空呀,还要怎么初始化?
[/quote]
请教这样算初始化了?
typedef map<unsigned int,string> map_test;
map_test::iterator iter;
map_test mymap;

我定义个整形变量,必须 int a=0;或者int a=NULL;才算初始化对吧?也就是赋初值。
那么map呢?我并没有赋予初值啊。
如果插入一个key,可是我数据库select并没有记录啊,我不需要插入key和value啊
[/quote]

以赋值的形式就行呀,变量的初始化不就是定义同时对其赋初始值值。容器也一样的呀,
std::unordered_map<std::string, size_t> people {{"Jan",20}, {"Jim", 33}, {"Joe", 18}};

或者
std::unordered_map<std::string, size_t> people;
people["Jan"] = 20;
people["Jim"] = 33;
people["Joe"] = 18;
oracleperl 2019-12-31
  • 打赏
  • 举报
回复
引用 8 楼 ganwenbo2011 的回复:
[quote=引用 4 楼 oracleperl 的回复:] [quote=引用 3 楼 ganwenbo2011 的回复:] 通过直接赋值或 insert插入
那假设 就是没有值要inert呢 map的值我是从数据库select出来的,也可能没有记录,怎么办? 普通的标量,我可以 int A=0或者ina A=NULL;就初始化了 map怎么办? 谢谢[/quote] 如果数据库有记录,对select结果进行赋值 插入就行了,没有记录map就为空呀,还要怎么初始化? [/quote] 请教这样算初始化了? typedef map<unsigned int,string> map_test; map_test::iterator iter; map_test mymap; 我定义个整形变量,必须 int a=0;或者int a=NULL;才算初始化对吧?也就是赋初值。 那么map呢?我并没有赋予初值啊。 如果插入一个key,可是我数据库select并没有记录啊,我不需要插入key和value啊
wbgan1994 2019-12-31
  • 打赏
  • 举报
回复
引用 4 楼 oracleperl 的回复:
[quote=引用 3 楼 ganwenbo2011 的回复:]
通过直接赋值或 insert插入

那假设 就是没有值要inert呢
map的值我是从数据库select出来的,也可能没有记录,怎么办?
普通的标量,我可以 int A=0或者ina A=NULL;就初始化了
map怎么办?

谢谢[/quote]

如果数据库有记录,对select结果进行赋值 插入就行了,没有记录map就为空呀,还要怎么初始化?
oracleperl 2019-12-30
  • 打赏
  • 举报
回复
引用 3 楼 ganwenbo2011 的回复:
通过直接赋值或 insert插入
那假设 就是没有值要inert呢 map的值我是从数据库select出来的,也可能没有记录,怎么办? 普通的标量,我可以 int A=0或者ina A=NULL;就初始化了 map怎么办? 谢谢
wbgan1994 2019-12-30
  • 打赏
  • 举报
回复
通过直接赋值或 insert插入
oracleperl 2019-12-30
  • 打赏
  • 举报
回复
求助。。。。。多谢
oracleperl 2019-12-27
  • 打赏
  • 举报
回复
求助,谢谢。。

65,192

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧