1. 打印函数
12 template <typename Container>
13 void display(Container& con) {
14 for (auto& elem : con) {
15 cout << elem << " ";
16 }
17 cout << endl;
18 }
19
20 template <typename Container>
21 void printSizeCapacity(const Container& con) {
22 cout << "con.size() = " << con.size() << endl;
23 cout << "con.capacity() = " << con.capacity() << endl;
24 }
2. vector的初始化
27 vector<int> num = {1, 3, 5, 7, 9, 8, 6, 4, 2};
28 vector<int> num2(10, 5);
29 vector<int> num3(num);
30 vector<int> num4(num.begin(), num.end());
3. vector的插入与删除
如果是 push_back() 的话,vector的capacity 如果不足,则,capacity *= 2; 。
如果是 insert() 的话,vector 的capacity 视情况而定。设 size = m, capacity = n。 要插入的数量是 t。
如果 n - m < t < m , capacity *= 2;
如果 t > m , 或t > n,则 capacity = t + m。
//insert(it, 999); 在 it 位置插入999.
27 void test0() {
28 vector<int> number = {1, 3, 5, 7, 9, 8, 6, 4, 2};
29 vector<int> number2(13, 5);
30 display(number);
31 printSizeCapacity(number);
32
33 cout << endl << "在vector的尾部进行插入与删除" << endl;
34 number.push_back(100);
35 number.push_back(200);
36 display(number);
37 printSizeCapacity(number);
38
39 cout << endl << "在vector的中间进行插入" << endl;
40 auto it = number.begin();
41 it++;
42 it++;
43 cout << "*it = " << *it << endl;
44 number.insert(it, 999);
45 display(number);
46 printSizeCapacity(number);
47 // vector的insert扩容原理
48 // 将元素的个数size()= m, 容量的大小capacity() = n,
49 // 将待插入的元素的个数设置为t
50 // 1、当t < n - m,此时就不会扩容
51 // 2、当 n - m < t < m,此时会按照2 * m进行扩容
52 // 3、当n - m < t, m < t < n,此时会按照 t + m进行扩容
53 // 4、当n - m < t, t > n,此时会按照 t + m进行扩容
54 number.insert(it, number2.begin(), number2.end());
55 display(number);
56 printSizeCapacity(number);
57 }
标签:insert,capacity,cout,number,num,用法,vector
From: https://www.cnblogs.com/zxinlog/p/17570282.html