c/c++ 查找 1 2 #include <algorithm> auto it=std::find (vec.begin (),vec.end (),a);
去重 1 auto new_end=std::unique (nums.begin (),nums.end ());
删除 1 2 vec.erase (iter); vec.remove (iter);
vector中的remove的作用是将等于value的元素放到vector的尾部,但并不减少vector的size
vector中erase的作用是删除掉某个位置position或一段区域(begin, end)中的元素,减少其size
删除所有重复元素 1 2 auto it=std::remove (vec.begin (),vec.end (),1 );std::erase (it,vec.end ());
最大公约数 1 2 #include <iostream> int t=__gcd(a,b);
优先队列 1 2 3 4 5 6 7 8 #include <queue> priority_queue<int , vector<int > > pq; priority_queue<int , vector<int > ,greater<int > >pq; pq.push (); pq.pop (); pq.top (); priority_queue<struct PP , vector<struct PP> ,greater<struct PP> > pq;
求最大值 1 2 Iterator* it=max_element (vec.begin (),vec.end ());
查找一个不小于元素的迭代器 需要容器有序 返回一个迭代器,指向在有序区间[first, last)中第一个大于或等于value的元素。如果找不到这样的元素,则返回last。
1 2 3 4 5 6 auto it=lower_bound (vec.begin (),vec.end (),value);auto it=upper_bound (vec.begin (),vec.end (),value);auto it=upper_bound (p.begin (),p.end (),value,greater ());
集合中是否存在某个值 1 2 unordered_set<int >st; int cnt=st.count (value);
求二进制最低位1对应的值
字符串 1 2 3 4 5 6 7 8 9 string to_string (int val) ; int stoi (string s) ;string s1="hello world" ; string s2="hello" int t=s1.find (s2); int t=s1.rfind (s2);
pair 1 2 3 4 #include <utility> pair<int ,int >p1=make_pair (1 ,2 ); vector< pair<int ,int > >E[u];