小白的c++笔记
文章平均质量分 63
merenguesl
这个作者很懒,什么都没留下…
展开
-
如何使用map存储自定义数据类型
最简单的map的形式如下:前面的 int 为 key 值,后面的 int 为 value值,当输出 map 时,会根据key 值自动升序排序,十分地方便。map<int,int> m1;但是如果要使用 map 存储一些自定义的数据类型,就相对复杂一些,可以分为两种情况来讨论。1. key 为内置数据类型, value 为自定义数据类型这种情况比较简单,和 map<int,int>这种最简单的 map 没有什么区别,只是将 int 换成 自定义数据类型,并且在输出 .原创 2021-08-02 18:31:51 · 7353 阅读 · 1 评论 -
错误C3848:具有类型“const MyCompare”的表达式会丢失一些 const-volatile 限定符以调用“bool MyCompare::operator ()(int,int)
今天在跟着黑马程序员的视频教程进行c++中map的排序练习,map输出的时候是默认升序输出的,如果想要实现map的降序输出,就需要写一个仿函数来改变默认排序规则,在map构造函数中添加一个自定义的类,在类中定义仿函数。map<int,int,myCompare>class myCompare{public: bool operator()(int v1, int v2) { //降序 return v1 > v2; }};然后进行降序输出: voi原创 2021-08-02 16:17:37 · 1382 阅读 · 2 评论 -
vector.erase()函数的常见陷阱
对 vector 尾部进行插入和删除操作可以很方便地通过 vector.push_back() 和 vector.pop_back() 函数来进行。但是想要对中间部分的数据进行增删操作,就需要使用到迭代器。为了对迭代器的使用进行学习,我们先定义一个整形数组v,并且给他赋初值:vector<int> v = { 10,20,30,40,50,60,70 };接下来,我们给数组插入5个1000,并且尝试使用迭代器将5个1000全部删除:v.insert(v.begin(),原创 2021-08-02 13:54:59 · 1240 阅读 · 1 评论