STL之vector容器初识一、vector容器存放内置数据类型二、vector容器存放自定义数据类型三、vector容器嵌套容器
一、vector容器存放内置数据类型//vector容器存放内置数据类型 #include二、vector容器存放自定义数据类型using namespace std; #include //vector容器 #include //算法 void printInt(int); void test() { //创建一个vector容器v vector v; //向vector中插入数据 v.push_back(10); v.push_back(20); v.push_back(30); //遍历vector容器内的元素 //1. while循环遍历 vector ::iterator itbegin = v.begin(); //指向vector容器的首元素 vector ::iterator itend = v.end(); //指向vector容器尾元素的下一个位置 while (itbegin != itend) { cout << *itbegin << endl; itbegin++; } //2. for循环遍历 for (vector ::iterator it = v.begin(); it != v.end(); it++) { cout << *it << endl; } //3.使用STL提供的for_each算法 for_each(v.begin(), v.end(), printInt); //使用STL提供的for_each算法 } void printInt(int val) { cout << val << endl; } int main() { test(); return 0; }
//vector容器存放自定义数据类型 #include三、vector容器嵌套容器class Person { public: string name; int age; Person(string name, int age) { this->name = name; this->age = age; } }; void test() { vector v; Person p1("寒冰射手", 22); Person p2("暗夜猎手", 20); Person p3("韩金轮", 33); v.push_back(p1); v.push_back(p2); v.push_back(p3); for (vector ::iterator it = v.begin(); it != v.end(); it++) { cout << it->name << " " << it->age << endl; //cout << (*it).name << " " << (*it).age << endl; } } int main() { test(); return 0; }
类似于一个二维数组
//vector容器嵌套容器 #includevoid test() { vector > vd; vector v1; vector v2; vector v3; for (int i = 0; i < 4; i++) { v1.push_back(i + 1); v2.push_back(i + 2); v3.push_back(i + 3); } vd.push_back(v1); vd.push_back(v2); vd.push_back(v3); //遍历二维vector for (vector >::iterator it = vd.begin(); it != vd.end(); it++) { //*it是内部的vector for (vector ::iterator vit = (*it).begin(); vit != (*it).end(); vit++) { cout << *(vit) << " "; } cout << endl; } } int main() { test(); return 0; }



