C++容器
数组
初始化
int* dp = new int[n+1];
vector
操作
通过push_back往里面插入元素。
1、vector排序
Queue
头文件
#include<queue>
初始化
queue<TreeNode*> Node_queue;
加入元素
Node_queue.push(tn);
获取第一个元素
Node_queue.front();
弹出第一个元素
Node_queue.pop();
函数名 使用介绍
q.pop() 删除queue的队头元素
q.front() 返回队列的队头元素,但不删除该元素
q.back() 返回队列的队尾元素,但不删除该元素
q.push(arg) 将元素arg插入到队列的队尾
q.emplace(arg) 将元素arg放置到队列的尾部,作用和push一样
q.size() 返回队列中元素的个数
q.empty() 当队列为空时返回true,否则返回false
q.swap(q1) 交换q和q1中的元素,方法和stack中一样,并不会真正使用拷贝形式进行交换,只是交换底层的数据结构
swap(q,q1) 非成员函数,和成员函数swap一样
unordered_set
头文件 unordered_set
unordered_map::insert
unordered_map::find
unordered_map::erase
unordered_map
头文件
#include <unordered_map>
初始化
std::unordered_map<std::string, std::string> umap;
初始化并赋初值(有两层括号)
std::unordered_map<std::string, std::string> umap{
{"Python教程","http://c.biancheng.net/python/"},
{"Java教程","http://c.biancheng.net/java/"},
{"Linux教程","http://c.biancheng.net/linux/"} };
基础使用
count(key) 在容器中查找以 key 键的键值对的个数。
equal_range(key) 返回一个 pair 对象,其包含 2 个迭代器,用于表明当前容器中键为 key 的键值对所在的范围。
emplace() 向容器中添加新键值对,效率比 insert() 方法高。
emplace_hint() 向容器中添加新键值对,效率比 insert() 方法高。
insert() 向容器中添加新键值对。
erase() 删除指定键值对。
根据键设置值:map[t] = i
根据键查找值:return map[t]
Stack
基本操作
初始化
stack<TreeNode*> s;
插入元素
s.push(root);
判空
s.empty()
获取头元素&删除头元素
TreeNode* cur = s.top();
s.pop();
Pair
使用pair定义stack
stack<pair<int,TreeNode*>> st;
产生pair类型的值
make_pair(0,root);
获取pair的值
auto [color,root] = st.top();
基本类型排序:
// using default comparison (operator <):
默认为升序
std::sort (myvector.begin(), myvector.begin()+4); //(12 32 45 71)26 80 53 33
sort里面的范围表示的是需要排序的部分
// using function as comp
自己写方法进行比较
bool myfunction (int i,int j) { return (i<j); }
ij的顺序是i在j前,后面的表示i和j的大小i<j
std::sort (myvector.begin()+4, myvector.end(), myfunction); // 12 32 45 71(26 33 53 80)
自定义类型排序:
C++比较大小
直接使用max即可
dp[i] = max(1,2);
string相关操作
注意:头文件是
#include<string>
1、string substr (size_t pos = 0, size_t len = npos) const;
产生子串返回一个新建的 初始化为string对象的子串的拷贝string对象。
子串是,在字符位置pos开始,跨越len个字符(或直到字符串的结尾,以先到者为准)对象的部分。
2、string substr( int pos);
产生str从pos位置开始到结束的子串,包含开始位置。
3、String转化为int
atoi()和stoi()函数
相同点:
①都是C++的字符处理函数,把数字字符串转换成int输出
②头文件都是#include
不同点:
①atoi()的参数是 const char* ,因此对于一个字符串str我们必须调用 c_str()的方法把这个string转换成 const char类型的,而stoi()的参数是const string,不需要转化为 const char*;
str.c_str()
string t = "xxxx";
char* c;
c = (char*) t.c_str();
②stoi()会做范围检查,默认范围是在int的范围内的,如果超出范围的话则会runtime error!
而atoi()不会做范围检查,如果超出范围的话,超出上界,则输出上界,超出下界,则输出下界;
特殊值
INT
最大、最小值,最大值为232-1,最小值为2-32。
头文件为limits.h
#include<limits.h>
int min=INT_MIN;
int max=INT_MAX;
————————————————
版权声明:本文为CSDN博主「哦啦哦啦!」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42240667/article/details/102980631