文章目录
前言
提示:这里可以添加本文要记录的大概内容:
记录刷数据结构与算法的过程中遇到的C++知识点
提示:以下是本篇文章正文内容,下面案例可供参考
一、零碎知识点总结
(1)交换数值的三种常见方法:
//通过标准库函数
swap(s[i],s[j]);
//建立临时变量
int tmp = s[i];
s[i] = s[j];
s[j] = tmp;
//通过位运算
s[i] ^= s[j];
s[j] ^= s[i];
s[i] ^= s[j];
a^=b相当于a=a ^ b;
“^” 异或就是两个数的二进制形式,按位对比,相同取0,不同取1。
通俗理解:a=3,b=4;
第一步:3^4=7; a=a ^ b a=7;
第二部:4^7=3; b=b ^ a b=3;
第三步:7^3=4; a=a ^ b a=4;
(2) 扩充字符串数组大小(抽时间总结一下string)
string s;
s.resize(s.size()+2*count);
(3)什么是split库函数,是干什么的?(了解一下split的用法)
一些同学会使用split库函数,分隔单词,然后定义一个新的string字符串,最后再把单词倒序相加,那么这道题题目就是一道水题了,失去了它的意义。
二、C++ deque::pop_front()、deque::pop_back()用法及代码示例
1.双端队列
双端队列或双头队列是序列容器,两端都有扩展和收缩函数。它们类似于向量,但是在元素的结尾和开始处插入和删除时效率更高
。与向量不同,可能无法保证连续的存储分配。
(1)双端队列::pop_front()
pop_front()函数用于从双端队列的前边弹出或删除元素。从一开始就从双端队列中删除该值,并将容器大小减小1。(思考:这个是双端队列在两个方向上都可以插入和删除元素,和普通队列的先进先出不一样)
(2) 双端队列::push_front( )
push_front()函数用于从双端队列的前边插入元素。(一般的不是双端队列的队列都是在队尾添加元素,双端队列可以在队列的头部添加元素)
(3)双端队列::pop_back()
pop_back()函数用于从的双端队列尾部弹出或删除元素。从末尾从双端队列中删除该值,并将容器大小减小1。
(4)双端队列::push_back()
push_back()函数用于从双端队列的尾部插入元素
思考:第一、关于deque容器
deque是一个双端队列,deque是栈的一种底层实现(栈的底层实现可以是vector、deque、list)
std::queue<int std::deque<int>> third;//定义以deque为底层容器队列
std::queue<int std::list<int>> third;//定义以list为底层容器队列
std::stack<int std::vector<int>> third;//定义以list为底层容器队列
关于pair<int ,int >
pair是C++中一种模板类型。每个pair对象可以存储两个值,这两个值可以是不同的数据类型。存储的值可以是基本数据类型也可以是自定义数据类型。<