小朋友学C++(18):标准库vector类

朴灿烈づ我的快乐病毒、 2022-05-22 01:28 298阅读 0赞

vector(向量)是 C++中的一种数据结构,也是一个类。它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的。

一、定义和初始化

vector v1; // T为类型名,比如int, float, string等
vector v2(v1); // 将v1赋值给v2
vector v3(n,i); // v3中含n个值为i的元素

二、操作

v.empty(); // 判断v是否为空
v.size(); // 返回v的长度
v.begin(); // 返回v的第一个元素
v.end(); // 返回v最后一个元素的下一个元素的值(指向一个不存在的值)
v.push_back(a); //在v的最后添加元素a(a必须与v的类型一致)

三、迭代器(iterator)

迭代器相当于指针,用来储存vector中元素的位置,即下标

定义:

  1. vector<T>::iteartor iter = v.begin(); //iter指向v第一个元素
  2. vector<T>::iteartor iter = v.end(); //iter指向v最后一个元素的下一个元素,这个元素不存在,通常用作循环结束的标志
  3. *iter //*iter指向的元素的值,可对其进行赋值
  4. iter++ //iter指向v下一个元素

常见用法:
for(vector::iterator iter = v.begin(); iter != v.end(); ++iter)
{
}

四、例子

  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. int main(int argc, char** argv)
  5. {
  6. vector<int> v;
  7. v.push_back(1);
  8. v.push_back(2);
  9. v.push_back(3);
  10. cout << "Size of v is: " << v.size() << endl;
  11. for(vector<int>::iterator iter = v.begin(); iter != v.end(); iter++)
  12. {
  13. cout << *iter << ' ';
  14. }
  15. cout << endl << endl;
  16. vector<float> v2(5, 3.33);
  17. cout << "Size of v2 is: " << v2.size() << endl;
  18. for(vector<float>::iterator iter = v2.begin(); iter != v2.end(); iter++)
  19. {
  20. cout << *iter << ' ';
  21. }
  22. return 0;
  23. }

运行结果:

  1. Size of v is 3
  2. 1 2 3
  3. Size of v2 is 5
  4. 3.33 3.33 3.33 3.33 3.33

更多内容请关注微信公众号
wechat.jpg

发表评论

表情:
评论列表 (有 0 条评论,298人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C++标准 vector排序

    前天要做一个对C++ STL的vector容器做一个排序操作,之前一直把vector当做一个容量可自动变化的数组,是的,数组,所以打算按照对数组进行排序的方法:用快速排序或是冒