// vector
vector<int> vec_s32(len); // alloc with length
vector<int> vec_s32(len, 0); // alloc with length, value
vec_s32.push_back(10); // push_back
sort(nums.begin(), nums.end()); // sort vector
reverse(nums.begin(), nums.end()); // reverse vector
vector<int>::iterator it = find(nums.begin(), nums.end(), 100); // find elem in vector by iterator
// set
set<int> set_s32;
set_s32.insert(100); // insert
vector<int>(set_s32.begin(), set_s32.end()); // set to vector
// string
string str;
string str2 = str.substr(0, str.length() - 3); // substr
int pos = str1.find(str2); // if not exist, pos = string::npos
str1.swap(str2);
// unordered_map
unordered_map<int, int> umap_s32s32;
umap_s32s32[1] = 100; // map: key = 1, val = 100
umap_s32s32.count(1) != 0; // exist: key = 1
// stack
stack<int> stk_s32;
stk_s32.push(10); // push
stk_s32.pop(); // pop
int tmp = stk_s32.top(); // top
stk_s32.empty() != 0; // exist
// deque: stack queue
deque<int> que_s32;
que_s32.push_back(100); // push_front, push_back
int tmp = que_s32.front(); // front, back
que_s32.pop_front(); // pop_front, pop_back
vector<int>(que_s32.begin(), que_s32.end()); // deque to vector, only deque can use iterator, not queue or stack
// priority_queue
priority_queue<ListNode*, vector<ListNode*>, T23_cmp> pque;
struct T23_cmp //decrease list
{
bool operator()(ListNode *l1, ListNode *l2)
{
return l1->val > l2->val;
}
};
ListNode *list;
pque.push(list); // push
pque.pop(); // pop
list = pque.top(); // top, no front, back in priority_queue
pque.empty() != 0; // exist