vector

初始化

vector<int> v(元素个数, 初始元素);

1
2
vector<int> v(5, 26);
// [26, 26, 26, 26, 26]

resize(长度, 新增元素默认值)

1
2
3
4
5
6
7
8
9
10
11
12
vector<vector<int> > v;
v.resize(3);
for(int i=0;i<v.size();i++) {
v[i].resize(4, 8);
}
/*
[
[8, 8, 8, 8],
[8, 8, 8, 8],
[8, 8, 8, 8],
]
*/

注意,vector 不是完全动态的

1
2
3
4
<vector<int> v;
v[15] = 20; /* 错误,必须先 resize */
v.resize(20);
v[15] = 25;

unorderd_set

初始化

set<int> s(起点, 终点+1)

1
2
3
4
5
6
7
8
9
vector<int> v;
for(int i=0;i<5;i++){
v.push_back(i);
}
int nums[] = {1,2,3,4,5}
// 迭代器初始化
set<int> s(v.begin(), v.end());
// 指针范围初始化,超尾
set<int> s(nums, nums + 5);

find(值)

在 set 中查找是否存在某个值

1
2
3
4
5
6
7
8
9
unordered_set<int> s;
s.insert(5);
s.insert(8);
if(s.find(100) != s.end()) {
cout << "找到了";
}
if(s.find(100) == s.end()) {
cout << "没找到";
}