STL常用api(函数版)
二. 常用APIvector / list / dequevector<int>v(n, val);v.resize(n, val);vv.resize(n, vector<int>(m, val));// 二维数组v.insert(v.begin(), val);v.erase(v.begin() + i);v.push_back(val);v.pop_back();v.
·
二. 常用API
vector / list / deque
vector<int>v(n, val);
v.resize(n, val);
vv.resize(n, vector<int>(m, val)); // 二维数组
v.insert(v.begin(), val);
v.erase(v.begin() + i);
v.push_back(val);
v.pop_back();
v.size();
v.empty();
// deque / list
deque<int>dq;
dp.push_front(val); // 头部插入
dp.pop_front(val);
// list
list<int>lst;
lst.merge(lst2); // 合并有序链表
lst.reverse(); // 反转链表
lst.remove(val); // 删除值为val的所有元素
stack / queue / priority_queue
stack<int>st;
st.push(val);
st.pop();
st.top();
queue<int>q;
q.push(val);
q.pop();
q.front();
priority_queue<int>pq; // 大根堆, 小根堆
priority_queue<int,vector<int>,less<int>>;
// 自己实现cmp结构体, 小根堆
priority_queue<Node>pq;
struct Node {
int x;
friend bool operate< (Node a, Node b) {
return a.x > b.x;
}
};
map
map<int, int>mp;
unordered_map<int, int>mp;
mp.insert(pair<int, int>(12, 34));
mp.erase(34);
if (mp.find(34) == mp.end()) { ... }
string
getline(cin, str); // '\n'结束
s.insert(s.begin() + i, s2); // 位置前插入s2
s.substr(pos, len); // 截取 s[i, i + pos) 子串
s.find(s2); // 在s中查找s2第一次出现
更多推荐
所有评论(0)