1 #include<cstdio> 2 #include<vector> 3 using namespace std; 4 void print(vector<int> a){ 5 //(3)用来获得vector中元素的个数,时间复杂度为O(1) 6 for(int j = 0; j < a.size(); j++){ 7 printf("%d ", a[j]);//通过 vi[i] 访问vector中的元素 8 } 9 printf("\n\n"); 10 } 11 void print_s(vector<int> a){ 12 for(vector<int>::iterator it = a.begin(); it != a.end(); it++){ 13 printf("%d ", *it); 14 } 15 printf("\n\n"); 16 } 17 int main(){ 18 vector<int> vi; 19 for(int i = 1; i <= 10; i++){ 20 //(1)在vector后面添加一个元素x,时间复杂度为 O(1) 21 vi.push_back(i); 22 } 23 printf("初始化...\n"); 24 print(vi); 25 26 //vi.begin() 为首元素的地址 27 vector<int>::iterator a = vi.begin(); 28 //vi.end() 为尾元素的下一个地址 29 vector<int>::iterator b = vi.end(); 30 printf("vi.begin() = %p, vi.end() = %p\n", a, b); 31 32 //(2)删除vector的尾元素,时间复杂度为 O(1) 33 printf("删除尾元素...\n"); 34 vi.pop_back(); 35 print(vi); 36 37 //(3)用来向vector的任意迭代器it插入一个元素, 时间复杂度为O(N),N为元素个数 38 printf("在 vi.begin()+2 插入一个元素...\n"); 39 vi.insert(vi.begin() + 2, 88); 40 print(vi); 41 42 //(6)删除一个元素, 时间复杂度为O(N) 43 printf("删除 vi.begin()+8...\n"); 44 vi.erase(vi.begin() + 8); 45 print(vi); 46 47 //删除一个区间内的元素,删除所有的话用vi.erase(vi.begin(), vi.end()); 48 printf("删除区间 [vi.begin() + 4, vi.begin() + 6]...\n"); 49 vi.erase(vi.begin() + 4, vi.begin() + 6); 50 print_s(vi); 51 52 //(4)清除vector中的所有元素,时间复杂度为O(N),N为元素个数 53 printf("清除所有元素...\n"); 54 vi.clear(); 55 print_s(vi); 56 57 return 0; 58 }
输出
初始化... 1 2 3 4 5 6 7 8 9 10 vi.begin() = 00b71330, vi.end() = 00b71358 删除尾元素... 1 2 3 4 5 6 7 8 9 在 vi.begin()+2 插入一个元素... 1 2 88 3 4 5 6 7 8 9 删除 vi.begin()+8... 1 2 88 3 4 5 6 7 9 删除区间 [vi.begin() + 4, vi.begin() + 6]... 1 2 88 3 6 7 9 清除所有元素...