打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C STL之vector

        C++ STL的学习从vector入手,但是在正式使用STL的内容之前,要先在主函数前添加一句

using namespace std;

它的作用就是定义标示符,如果不加上这句代码就要在每句使用C++标准程序库的任何标识符时加上“std::”了。

比如说

std::string s = 'Hellow World!';
std::cout<<s<<std::endl;

如果主函数前加上了using namespace std;的话,这样就好了

string s = 'Hellow World!';
cout<<s<<endl;

怎么样比刚才好多了吧,所以不要偷懒,凡是要用到C++标准程序库的任何标识符,都要先加上这一句代码。

说了这么多,现在终于要说说vector了。

vector

不定长数组、变长数组

头文件:#include<vector>

定义:vector<typename>name;

(在刚刚以及接下来的STL容器的定义中所用的typename表示可以是任何基本类型,例如int、double、char,也可以是自定义结构体或STL容器,例如vector、string等)

元素访问:(现已定义vector<int>vi;)

  1. 下标访问  vi[0]、vi[1],这与一维数组的访问方式极像。

  2. 通过迭代器访问。 vi.begin()和vi[0]是等价的;vi.begin()+4和vi[4]也是等价的。

遍历:

  1. 下标访问

    for(int i = 0; i < vi.size(); i++)

  2. 迭代器访问

    for(vector<int>::iterator it = vi.begin(); it != vi.end(); it++)

看完了两种遍历方式想必你一定知道我推荐的是哪一种访问方式了,没错就是下标访问。

常用函数:

  1. push_back(x)

      在vector后面添加一个元素x,时间复杂度O(1)。

  2. pop_back()

     删除vector的尾元素,O(1)。

  3. size()

      获取vector中元素的个数。

  4. clear()

      清空vector中的所有元素,O(N)。

  5. insert(it,x)

      向vector的it迭代器处插入一个元素x,O(N)。

      例如,vi.insert(vi.begin()+2,-1);

              将-1插入到vi[2]的位置上。

  6. (1)erase(it)

         删除迭代器it处的元素,O(N)。

    (2)erase(first,last)

          删除[first,last)内所有的元素,O(N)。

          例如,vi.erase(vi.beegin()+1,vi.begin()+4);

                  删除vi[1],vi[2],vi[3].





本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
STL容器删除元素的陷阱
C#与STL的容器对应说明(转摘)
STL容器的erase用法
STL-vector介绍
C STL中五个常用算法使用教程及实例讲解
STL中用erase()方法遍历删除元素
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服