C++
C++有关的博客
Peanutty
菜鸡一枚
展开
-
【STL】map的基本操作
map初始化unordered_map<int,char> mp = { {1,'1'}, {2,'2'}, {3,'3'}, {4,'4'}, {5,'5'}, {6,'6'}, {7,'7'}, {8,'8'}, {9,'9'} };通过key访问map的valueunordered_map<int,char> mpcout<<mp[2];向map中添加元素key::valuemap<string, int> word_原创 2021-03-28 20:00:28 · 110 阅读 · 0 评论 -
C++:运算符重载 operator
参考《C++ Primer Plus 》 P381,运算符重载定义一个表示时间的 Time() 类,有成员变量 hours 和 minutes ,如果需要将 Time() 的两个实例表示的时间(如2小时40分钟 加上 1 小时30分钟)相加, 可以定义成员函数 Sum() ,还可以重载 + 加法运算符 。使用成员函数Sum()//头文件 mytime.hclass Time{ private: int hours; int minutes; public: //其他成员函数.原创 2021-03-07 16:06:11 · 269 阅读 · 0 评论 -
C++中string.size()函数 踩坑
例如string、vector等类型的size函数返回的是一个无符号整型数,如果在表达式中混和使用了带符号数和无符号数,将产生意想不到的结果。 带符号数将自动转换为无符号数,例如-1,由于-1的二进制表示的最高位为1,这回导致size() > -1一定会返回false。在进行判断size()时,还是应该使用0进行比较。案例#include<iostream>#include<string>using namespace std;int main(){原创 2021-03-07 13:29:48 · 5381 阅读 · 0 评论 -
【C++优先队列 priority_queue】求丑数
优先队列的定义在C++的 queue 头文件中定义的优先队列 priority_queue,通常定义方式为priority_queue<int> s;优先队列还接受其他参数priority_queue<long long, vector<long long>, greater<long long> > pq;第一个参数 long long 为数据类型第二个参数 vector< long long> 为保存数据的容器,默认原创 2021-03-05 20:30:27 · 627 阅读 · 0 评论 -
【STL】set集合,输入一个文本,找出所有不同的单词(连续的字母序列),按字典序从小到大输出
集合:SETset集合中元素不能重复例题输入一个文本,找出所有不同的单词(连续的字母序列),按字典序从小到大输出,单词不区分大小写。样例输入:Today is Sunday! On Sunday, I usually play basketball.样例输出:basketballiisonplaysundaytodayusually解答本题为了展示set的用法,直接使用set保存单词集合。将string类型插入set集合后自动按字典排序。解答时把非字母字符变成空格,然后用st原创 2021-03-04 23:48:16 · 1522 阅读 · 1 评论 -
如何让类对象只在栈(堆)上分配空间?(《More Effective C++》条款27)
一般情况下,编写一个类,是可以在栈或者堆分配空间。但有些时候,你想编写一个只能在栈或者只能在堆上面分配空间的类。这能不能实现呢?仔细想想,其实也是可以滴。 在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。 1、静态建立类对象:是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上...转载 2021-03-02 22:13:45 · 128 阅读 · 0 评论 -
C++队列queue的front()方法
C++队列queue的front()方法代码#include<queue>#include<iostream>#include<vector>#define N 100using namespace std;struct Node{ int lv;//记录当前层数 int wei;//当前重量 int val;//当前价值 int status[N];//当前存储数组 };int main(){ queue<Node> q;原创 2020-11-27 16:18:26 · 19266 阅读 · 0 评论 -
C++虚继承和虚基类
C++虚继承和虚基类本文为转载C语言中文网内容原文链接:http://c.biancheng.net/view/2280.html多继承(Multiple Inheritance)是指从多个直接基类中产生派生类的能力,多继承的派生类继承了所有父类的成员。尽管概念上非常简单,但是多个基类的相互交织可能会带来错综复杂的设计问题,命名冲突就是不可回避的一个。多继承时很容易产生命名冲突,即使我...转载 2020-05-08 15:25:24 · 145 阅读 · 0 评论 -
C++中指针 * 与指针引用 *& 的区别
C++中*&(指针引用)与*(指针)的区别*指针是一个存放地址的变量,指针引用指的是这个存放地址的变量的引用。C++中如果参数不是引用的话,会调用参数对象的拷贝构造函数,所以如果有需求想改变指针所指的对象即想要改变指针变量里存放的地址,就要使用指针引用。下面用一个测试例子和过程图结合进行说明————————————————注:本文为转载版权声明:本文为CSDN博主「RoseV...转载 2020-03-24 18:28:08 · 632 阅读 · 0 评论