二. 常用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第一次出现
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐