一般定义:
vector
vector
使用数组定义:
int i[10] ={1,2,3,4,5,6,7,8} ;
vector
有大小定义:
vector
初始值定义:
vector
vector向后插入:
v.insert(v.end(), “aefgts”);
v.insert(v.end(), make_pair(“ssdf”, 2));
v.push_back(123);
v.push_back({}); //插入空
v.push_back({1}); //插入1
插入另一个vector:
v.insert(old.end(), new.begin(), new.end());
插入n个:
v.insert(pos,n,elem)
vector
v.push_back({1, 2, 3}); //插入vector
错误写法:
v.push_back();
v.push_back([]);
取出第一个:
v.front()
*v.begin()
取出最后一个:
v.back()
*(v.end() - 1)
取出第i个:
v[i]
计算大小:
v.size()
错误写法:
v.size
v.length
v.length()
排序:
sort(v.begin() , v.end()); //从小到大
自定义排序:
sort(v.begin() , v.end(), cmp); //从小到大
bool cmp(const int& a, const int& b) {
return a > b;
}
翻转:
reverse(vi.begin(),vi.end()); // 从大到小
循环:
for (int i = 0; i < len; i++) {}
for(vector
反向循环:
for(vector
清空:
v.clear();
删除第一个:
v.erase(v.begin());
删除最后一个:
v.pop_back()
删除:
v.erase(pos,n); //删除从pos开始的n个,不是从pos到n
交换:
v1.swap(v2);
swap(v1, v2);
查找:
vector
int index = iter - v.begin();
判断是否查找到:
vector
if(iter != v.end()) {}
没法求
排序:
sort(a, a + 5); //从小到大
sort(a, a + 5, cmp);
bool cmp(const int& a, const int& b) {
return a > b;
}
自动排序,按从小到大字典序
有key和value ,每个关键字在map中出现一次
直接定义:
map
map
根据其他的map定义:
map
可覆盖添加:
m[‘a’] = 2;
不可覆盖添加(不报错,添不进去):
m.insert(pair
m.insert(map
添加另一个map:
n.insert(m.begin(), m.end());
大小:
m.size()
已知key,取出key:
m.find(“333”)->first
已知key,取出value:
m.find(“333”)->second
m[“333”]; //要是没有就加上了
已知value,取出key:
for (std::map
if (it->second == value) {}
}
一直key,value自增
++(m.find(1)->second);
按key排序:
struct Cmp{
bool operator()(const string& k1, const string& k2)const {
return k1.length() < k2.length();
}
};
map
key和value都排序:pair
#include
#include
for (map
cout << it -> first << it -> second << endl;
}
m.erase(“234”); //如果没有就跳过
m.erase(m.find(“234”)); //如果没有就会死循环
m.erase(m.begin(), m.end());
自动排序,按从小到大字典序
定义:
set
添加:
s.insert(2); //不需要指定位置
没有push_back
s.size();
取出第一个:
*v.begin()
取出最后一个:
*(–s.end())
for (set
cout << *it << endl;
}
删除元素:
s.erase(value);
s.erase(s.begin());
删除两个之间的:
s.erase(s.begin(), s.end())
s.erase(s.begin(), --s.end()) //留最后一个
删除某一个:
set
for (int i = 0; i < 2; i++) {
it++;
}
s.erase(it);
if (s.find(2) != s.end()){true}
if (s.count(3)) {true}