#include <iostream> #include <vector> using namespace std; int main() { int ar[10] = { 1,2,3,4,5,6,7,8,9,0 }; std::vector<int> vec5(ar, ar + 10); // reverse size_t cap1 = vec5.capacity(); // = 10 vec5.reserve(20); // = Request a change in capacity size_t cap2 = vec5.capacity(); // = 20 // data() int * pInt = vec5.data(); for (size_t i=0; i<vec5.size(); ++i) { cout << pInt[i]; } cout << endl; // 1234567890 // begin end for (auto it=vec5.begin(); it != vec5.end(); ++it) { cout << *it; } cout << endl; // 1234567890 // cbegin cend 常量,保证不改变 vector 中的元素 for (auto it = vec5.cbegin(); it != vec5.cend(); ++it) { cout << *it; } cout << endl; // 1234567890 // rbegin rend 注意偏移是 ++ 操作 for (auto it = vec5.rbegin(); it != vec5.rend(); ++it) { cout << *it; } cout << endl; // 0987654321 // iterator erase (const_iterator position); vec5.erase(vec5.begin()); // delete 1; size = 9 // iterator erase (const_iterator first, const_iterator last); vec5.erase(vec5.begin(), vec5.begin()+2); // delete 2, 3; size = 7 // max_size; Returns the maximum number of elements that the vector can hold. // 系统或者库的设计上线。并非机器所能申请的最大大小。 size_t maxSize = vec5.max_size(); std::vector<int> vec6(2); vec5.swap(vec6); // 两者交换 ///vec5.swap(std::vector<int>()); // 2015支持,2017不支持 // iterator insert( iterator pos, const T& value ); auto it = vec5.begin(); vec5.insert(it, 101); it = vec5.begin(); // it 已经失效 vec5.insert(it +1, 102); // iterator insert(const_iterator pos, const T& value); const std::vector<int>::iterator cit = vec5.begin(); vec5.insert(cit, 103); // void insert( iterator pos, size_type count, const T& value ); // iterator insert( const_iterator pos, size_type count, const T& value ); vec5.insert(vec5.begin(), 2, 104); // insert 2 个 104 // template< class InputIt > // void insert(iterator pos, InputIt first, InputIt last); vec5.insert(vec5.begin(), vec6.begin(), vec6.end()); // insert vec6 // iterator insert( const_iterator pos, std::initializer_list<T> ilist ); vec5.insert(vec5.begin(), {105,106,107}); }