首页 > 代码库 > 第6章 vector向量容器
第6章 vector向量容器
/*第三篇 C++STL容器技术 第6章 vector向量容器 6.1 vector技术原理 6.2 vector应用基础 6.3 本章小结*/// 第6章 vector向量容器// 6.1 vector技术原理 -------------------------------------------------------------------------------------------// 6.2 vector应用基础 -------------------------------------------------------------------------------------------// 95#include <vector>#include <iostream>int main(void){ using namespace std; vector < int > v; v.push_back(20); v.push_back(26); v.push_back(39); for(size_t i = 0; i < v.size(); i++) cout << "v[" << i << "] = " << v[i] << endl; return 0;}//96#include <vector>#include <iostream>int main(void){ using namespace std; vector < int > v; v.push_back(20); v.push_back(26); v.push_back(39); vector < int > ::iterator i, iend; iend = v.end(); int j; for(i = v.begin(), j = 0; i != iend; i++, j++) cout << "v[" << j << "] = " << *i << endl; return 0;}// 96 , insert#include <vector>#include <iostream>int main(void){ using namespace std; vector < int > v; v.push_back(6); v.push_back(7); v.push_back(8); v.push_back(10); v.insert(v.begin() + 3, 9); //在元素10的前面插入9 v.insert(v.begin(), 5); //插入5为首元素 v.insert(v.end(), 11); //插入11为末元素 for(size_t i = 0; i < v.size(); i++) cout << "v[" << i << "] = " << v[i] << endl; return 0;}// 97, erase#include <iostream>#include <vector>class MyAnimal{ public: char *name; int age; public: MyAnimal(char *name, int age) { this->name = name; this->age = age; } ~MyAnimal(){}};int main(void){ using namespace std; MyAnimal *pDog = new MyAnimal("dog", 1); MyAnimal *pMonkey = new MyAnimal("monkey", 2); MyAnimal *pChicken = new MyAnimal("chicken", 3); MyAnimal *pSnake = new MyAnimal("snake", 4); vector < MyAnimal * > v; //v将存放各对象的地址 v.push_back(pDog); v.push_back(pMonkey); v.push_back(pChicken); v.push_back(pSnake); delete pMonkey; //物理删除pMonkey所指的对象 v.erase(v.begin() + 1); //删除第2个元素,即抹去了vector的pMonkey地址 vector < MyAnimal * > ::iterator i, iend; iend = v.end(); for(i = v.begin(); i != iend; i++) cout << (*i)->name << ‘ ‘ << (*i)->age << endl; v.clear(); //清除所有vector元素 cout << "执行clear()" << endl << "vector元素已全部清除" << endl; return 0;}// 98, 反向遍历#include <vector>#include <iostream>int main(void){ using namespace std; vector < int > v; v.push_back(1); v.push_back(3); v.push_back(5); v.push_back(7); v.push_back(9); vector < int > ::reverse_iterator ri, riend; // riend = v.rend(); for(ri = v.rbegin(); ri != riend; ri++) cout << *ri << endl; return 0;}// 99, swap#include <vector>#include <iostream>using namespace std;void print(vector < int > &v);int main(void){ //v1 vector < int > v1; v1.push_back(11); v1.push_back(12); v1.push_back(13); cout << "v1 = "; print(v1); //v2 vector < int > v2; v2.push_back(90); v2.push_back(92); cout << "v2 = "; print(v2); //v1与v2交换 v1.swap(v2); // v1和v2元素个数不必相等 cout << "v1与v2交换后" << endl; cout << "v1 = "; print(v1); cout << "v2 = "; print(v2); return 0;}void print(vector < int > &v){ for(size_t i = 0; i < v.size(); i++) cout << v[i] << " "; cout << endl;}// 100#include <vector>#include <iostream>using namespace std;void print(vector < int > &v);int main(void){ using namespace std; vector < int > v; print(v); //添加5个元素 v.push_back(1); v.push_back(2); v.push_back(3); v.push_back(4); v.push_back(5); print(v); //再添加4个元素 v.push_back(6); v.push_back(7); v.push_back(8); v.push_back(9); print(v); //调整vector数据空间大小 v.reserve(30); print(v); return 0;}void print(vector < int > &v){ cout << "---------------------" << endl; cout << "empty = " << v.empty() << endl; cout << "size = " << v.size() << endl; cout << "max_size = " << v.max_size() << endl; cout << "capacity = " << v.capacity() << endl;}// 6.3 本章小结 -------------------------------------------------------------------------------------------
TOP
第6章 vector向量容器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。