在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
vector(向量容器),是 C++ 中十分实用一个容器。vector 之所以被觉得是一个容器,是由于它可以像容器一样存放各种类型的对象,简单地说,vector 是一个可以存放随意类型(类型可以是int, double, string, 还可以是类)的动态数组,可以添加和压缩数据。 使用 vector 之前。必须包括对应的头文件,vector 属于 std 命名域的,因此须要通过命名限定:
vector<int> a; //创建一个int类型的空的vector对象,没有不论什么元素 vector<int> b(a); //b 是 a 的副本 vector<string> str(10, "mike"); //10个str,每一个的内容都是"mike" vector<int> c(10); //创建10个int类型vector对象。相当于c[10],每一个元素的值默觉得0 vector 对象经常使用操作使用示比例如以下:
#include <iostream> #include <vector> using std::vector; using std::cout; using std::endl; //using namespace std; int main( ) { vector<int> a(10); //创建10个int类型vector对象。相当于c[10],每一个元素的值为0 //推断 a 是否为空 if( true == a.empty() ){ cout << "it is empty\n"; }else if(false == a.empty() ){ //结果不为空 cout << "it is not empty\n"; } //返回 a 中元素的个数。 cout << "size = " << a.size() << endl; // 结果为10 // 在 a 的末尾添加一个值为 5 的元素。 // 本来有10个元素。再加入一个。变为11个 a.push_back(5); //下标操作元素。有11个元素。0~10 //打印最后一个元素 cout << a[a.size() -1] << endl; //结果为 5 // 下标法,把全部元素的值打印出来 // vector<int>::size_type 能够当做 int 使用 for(vector<int>::size_type i = 0; i != a.size(); i++){ cout << a[i] << ", "; } cout << endl; cout << "size before pop_back = " << a.size() << endl; a.pop_back(); //删除容器最后位置处的元素 cout << "size after pop_back = " << a.size() << endl; // 下标法,给全部元素赋值 for(vector<int>::size_type i = 0; i != a.size(); i++){ a[i] = 5; } cout << "it is a:\n"; // 把 a 全部元素的值打印出来 for(vector<int>::size_type i = 0; i != a.size(); i++){ cout << a.at(i) << ", "; } cout << endl; vector<int> b = a; //b是a的复制品 cout << "it is b:\n"; // 把 b 全部元素的值打印出来 for(vector<int>::size_type i = 0; i != a.size(); i++){ cout << b[i] << ", "; } cout << endl; a.clear(); //清除全部元素 cout << "size after clear = " << a.size() << endl; return 0; } 执行结果例如以下: 迭代器操作 vector 对象除了使用下标来訪问 vector 对象的元素外。标准库还提供了还有一种訪问元素的方法:使用迭代器(iterator) 。迭代器是一种检查容器内元素并遍历元素的数据类型。实际上,vector 对象相当于数组,而迭代器就相当于指针。 每种容器类型都定义了自己的迭代器类型,如 vector:
使用示比例如以下:
#include <iostream> #include <vector> using std::vector; using std::cout; using std::endl; //using namespace std; int main( ) { vector<int> v(10, 5); //有10个元素,每一个元素的值都是5 //通过迭代器把全部元素的值打印出来 vector<int>::iterator it; for( it=v.begin(); it!=v.end(); it++){ cout<< *it << ", "; } cout << endl; //通过迭代器给全部元素赋值为1 for( it=v.begin(); it!=v.end(); it++){ *it = 1; } cout << endl; //通过迭代器把全部元素的值打印出来 for( it=v.begin(); it!=v.end(); it++){ cout<< *it << ", "; } cout << endl; it = v.begin(); //返回指向容器最開始位置元素的指针(迭代器) //删除指针it+1指向位置的元素,返回指向下一个元素位置的指针(迭代器) v.erase(it+1); cout << endl << "after erase:\n"; //通过迭代器把全部元素的值打印出来 for( it=v.begin(); it!=v.end(); it++){ cout<< *it << ", "; } cout << endl; it = v.begin(); //在位置it后插入3个5 v.insert(it, 3, 5); cout << endl << "after insert:\n"; //通过迭代器把全部元素的值打印出来 for( it=v.begin(); it!=v.end(); it++){ cout<< *it << ", "; } cout << endl; return 0; } 执行结果例如以下: |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论