请教C++ STL map 使用方法?
map<int, int> sum;声明一个整数整数对 map数组 长度1000
sum=j;
数组中第i个 map 是k,j这个整数对
以上理解正确吗?欢迎指点,谢谢! 当然不对。
map<int, int> sum; 中,第i个map是sum是没问题的,这是数组。但是“map 是k,j这个整数对”这是不对的,map是容器,k,j这个整数对只是这个容器中的一个元素。 无力吐槽,建议先随便找一本讲C++的书来看,并坐坐后面的练习
如果你觉得看书很吃力,建议放弃C++,因为如果连书都看不懂,实在没必要学C++
python,java,c#,js哪个不比c++工资高 canspider 发表于 2020-12-9 09:21
无力吐槽,建议先随便找一本讲C++的书来看,并坐坐后面的练习
如果你觉得看书很吃力,建议放弃C++,因为如 ...
我怎么觉得C++更容易找到工资高的,而且年龄焦虑要比你说的几种语言来的晚很多。另外职位也相对多,注意不是绝对多。而是求职人数和职位数的比例要比其它几种语言更友好很多。 基本都不太对,你的理解都是停留在c的数组,map是键值对(key-value).
1.stl的容器一般都不需要预先声明大小,元素数量可以动态增减.
2.sum=j表示给key为i的元素赋值j.
3.j=sum表示将key为i的元素赋值给j,这里不能说成第i个元素,虽然在这个题设下结果相同.
注意sum这个方法,如果不存在key为i的元素,将会自动添加,而value会被赋默认值。 liwey 发表于 2020-12-9 09:33
我怎么觉得C++更容易找到工资高的,而且年龄焦虑要比你说的几种语言来的晚很多。另外职位也相对多,注意 ...
C++是蛮多的,服务器后端,密集计算、游戏、工业控制,嵌入式等。
但开发效率上不去,培养一个成熟合格的C++工程师花费的时间太长了。
现在的小孩都学什么python、java、javascript、golang上手要快很多,因为轮子都造好了,使用方便。
使用c++有时候虽然也有轮子,但是轮子要在github网上上搜索,相比其他语言更加的花费时间,而且配环境都要花不少精力,还要解决各种冲突,等装好轮子,人家业务都做得差不多了。
其他语言就一条命令,轮子装好了,开车吧。{:curse:}
c++就是还要管这轮胎什么材料呀,轮毂结不结实呀,气压要打到多少呀,要怎么安装上去呢,螺丝用什么型号的呢,用什么扳手,拧多少扭矩。{:dizzy:} 本帖最后由 billtian 于 2020-12-9 16:22 编辑
谢谢大家 基本明白了 写了几句测试了一下
#include<bits/stdc++.h>
using namespace std;
map<int, int> sum;
typedef map<int, int>::iterator Iter;
int main ()
{
sum = 66;
sum = 77;
sum = 88;
sum = 99;
sum = 777;
sum=2;
sum=1977;
//sum=1999;
for(int i=0;i<10;i++)
{
cout<<"----------"<<i<<"----------"<<sum.size()<<"----------"<<endl;
for (Iter it=sum.begin(); it!=sum.end(); it++)
{
cout<<it->first<<" "<<it->second<<endl;
}
}
}
billtian 发表于 2020-12-9 11:18
谢谢大家 基本明白了 写了几句测试了一下
#include
你明白了个鬼{:sweat:}
是我的字太丑了所以你不看么? lxvtag 发表于 2020-12-9 12:06
你明白了个鬼
是我的字太丑了所以你不看么?
不是他不看你写的内容,而是你没看懂他在楼主位写的内容
有效交流的前提是双方有共同基础,你忽略了楼主位的内容,写了一堆正确的废话,当然没人看 canspider 发表于 2020-12-9 12:21
不是他不看你写的内容,而是你没看懂他在楼主位写的内容
有效交流的前提是双方有共同基础,你忽略了楼主 ...
明明字字都在回答标题和楼主位内容,怎么就成了正确的废话? lxvtag 发表于 2020-12-9 12:37
明明字字都在回答标题和楼主位内容,怎么就成了正确的废话?
“键值对”,“容器”,“元素”这些在你看来是理所当然的东西,对楼主而言就是天书
为什么上大学前要读高中
你会和小学生讲柯西不等式吗,虽然你说的都对,小学生听不懂就是废话
楼主想要的答案其实是,map只是一维数组
然后再引申出下标可以不是数字,可以自己增长 canspider 发表于 2020-12-9 12:53
“键值对”,“容器”,“元素”这些在你看来是理所当然的东西,对楼主而言就是天书
为什么上大学前要读 ...
你要这么说就没问题,上边的看着就阴阳怪气。
要是我说,楼主就你这水平学个毛C++,回家放羊去吧。。。
你觉得对楼主会有什么帮助吗? lxvtag 发表于 2020-12-9 13:08
你要这么说就没问题,上边的看着就阴阳怪气。
有放早回去了 没办法大家都得谋生 分工不同而已 闻道有先后 术业有专攻 自己在某个领域比别人强算不了什么别那么大火气 年轻人 billtian 发表于 2020-12-9 13:29
有放早回去了 没办法大家都得谋生 分工不同而已 闻道有先后 术业有专攻 自己在某个领域比别人强算不了什 ...
那不是回你的。
算了,写的好赖都无所谓,挣钱才重要。。。 lxvtag 发表于 2020-12-9 13:46
那不是回你的。
算了,写的好赖都无所谓,挣钱才重要。。。
{:handshake:}感谢大家的指点 不管怎么说 还是比发帖前进步了 lxvtag 发表于 2020-12-9 12:37
明明字字都在回答标题和楼主位内容,怎么就成了正确的废话?
map<int, int> sum;
你一直在答非所问,sum明明是个数组,数组的元素才是map<int, int>类型的。
您再看看9楼的回复,你确认你看懂了楼主位的内容? takashiki 发表于 2020-12-9 13:57
map sum;
你一直在答非所问,sum明明是个数组,数组的元素才是map类型的。
您再看看9楼的回复,你 ...
好吧,是我看错了,没想到楼主初学map就搞了这么复杂的结构。
不聊了,写bug去了。 billtian 发表于 2020-12-9 11:18
谢谢大家 基本明白了 写了几句测试了一下
#include
for (Iter it=sum.begin(); it!=sum.end(); it++) 楼主这一行代码是不是漏写了什么?sum.begin应该是sum.begin吧。
代码风格需要从开始就要注意呀,不然养成习惯了很难改掉。
下面是我的代码风格,供参考:
#include <iostream>
#include <map>
using namespace std;
map<int, int> sum;
typedef map<int, int>::iterator Iter;
int main ()
{
sum = 66;
sum = 77;
sum = 88;
sum = 99;
sum = 777;
sum = 2;
sum = 1977;
//sum=1999;
for (int i = 0; i < 10; i++) {
cout << "----------" << i << "----------" << endl;
for (Iter it = sum.begin(); it != sum.end(); it++)
cout << it->first << " " << it->second << endl;
}
return 0;
} 本帖最后由 wanglouxiaozi 于 2020-12-9 16:17 编辑
wanglouxiaozi 发表于 2020-12-9 16:14
for (Iter it=sum.begin(); it!=sum.end(); it++) 楼主这一行代码是不是漏写了什么?sum.begin应该是sum. ...
我错了,sum\.begin在论坛上会显示为sum.begin!!!!!!!! wanglouxiaozi 发表于 2020-12-9 16:16
我错了,sum\.begin在论坛上会显示为sum.begin!!!!!!!!
确实是少了 不知道为什么{:victory:}
页:
[1]