面试笔试算法必备知识点!文章内容总结自《算法笔记》,时刻巩固以免忘记(lll¬ω¬)
1.vectory用法:
Vectory:变长数组
- 定义方法:
1
2
3
4
5
6
7
8
9
10
11vectory<typename> name;
// eg:
vectory<int> nums;
// 如果typename类型也是一个STL容器,定义方式如下:
vectory<vectory<int> > name; // >>之间有空格避免歧义 --》两维都可变的二维数组
// vectory数组的定义方式如下:
vectory<typename> Arrayname[arraySize] // 一维可变的二维数组
// eg:
vectory<int> nums[10] - 访问方法:
1
2
3
4
5
6
7
8
9// 通过下标访问:
nums[0], nums[1];
// 通过迭代器访问:
vectory<typename>::iterator it;
//eg:
vectory<int>::iterator it; // 得到迭代器it,通过*it进行访问vectory
// nums[i] 等价于 *(it + i) - 常用函数:
1
2
3
4
5
6
7
8
91. push_back(x) 在vectory末尾添加一个元素x O(1) nums.push_back(i);
2. pop_back() 在vectory末尾删除一个元素 O(1) nums.pop_back();
3. size() 求得vectory元素个数 O(1) nums.size()
4. begin() 求得vectory数组nums首地址与it指向地址一样 O(1) nums.beagin()
5. end() 求得vectory数组nums尾元素的下一个地址 O(1) nums.end()
6. clear() 清空vectory所有元素 O(n) nums.clear()
7. insert(it, x) 向vectory任意迭代器it处插入一个元素x O(N) nums.insert(nums.begin() + 2, 3)
8. erase(it) 删除迭代器it处元素 O(n) nums.erase(nums.begin() + 2)
9. erase(first, last) 删除[first, last)内的所有元素 O(n) nums.erase(num.begin() + 1, num.end())删除除第一个元素外的其他元素