面试笔试算法必备知识点!文章内容总结自《算法笔记》,时刻巩固以免忘记(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())删除除第一个元素外的其他元素