vector是一个模板类 所以使用时要用vector<int> a 或者 vector<double> b这样的方式来声明一个vector
vector<int>是一个类似于int a[]的整数数组,而vector<string>是一个类似于string a[]的字符串数组
clear()清空
resize()改变大小
push_back()在尾部添加元素
pop_back()在尾部删除元素
empty()测试是否为空
vector之间可以直接赋值或者作为函数的返回值
push_back()和pop_back()无需改变数组长度,自动会增加和减小数组长度
增加长度后增加的元素值为0
测试代码:

#include <iostream>
#include <vector>
using namespace std;int main() {vector<int> a;int t;for (int i = 0; i < 10; i++) { cin >> t;a.push_back(t);}vector<int> b;b = a;cout << "print b: 直接赋值" << endl;for (int i = 0; i < b.size(); i++) {cout << b[i] << " ";}cout << endl;cout << "a.size() = " << a.size() << endl;cout << "print1:" << endl;for (int i = 0; i < a.size(); i++) {cout << a[i] << " ";}cout << endl;a.resize(11);cout << "a.size() = after resize(11) :" << a.size() << endl;cout << "print2 after resize(11):" << endl;for (int i = 0; i < a.size(); i++) {cout << a[i] << " ";}cout << endl;a.push_back(22);cout << "print3 after push_back(22):" << endl;for (int i = 0; i < a.size(); i++) {cout << a[i] << " ";}cout << endl;a.pop_back();cout << "a.size() = after pop_back() :" << a.size() << endl;cout << "print4 after pop_back():" << endl;for (int i = 0; i < a.size(); i++) {cout << a[i] << " ";}cout << endl;cout << "a.empty()?:" << a.empty() << endl;a.clear();cout << "a.size() = after a.clear() :" << a.size() << endl;cout << "print5 after a.clear():" << endl;for (int i = 0; i < a.size(); i++) {cout << a[i] << " ";}cout << endl;return 0;
}

STL vector 的方法:

c.assign(beg,end)  将(beg; end)区间中的数据赋值给c。
c.assign(n,elem) 将n个elem的拷贝赋值给c。
c. at(idx)  传回索引idx所指的数据,如果idx越界,抛出out_of_range。
c.back()  传回最后一个数据,不检查这个数据是否存在。
c.begin()  传回迭代器中的第一个数据地址。
c.capacity()  返回容器中数据个数。
c.clear()  移除容器中所有数据。
c.empty()  判断容器是否为空。
c.end() // 指向迭代器中末端元素的下一个,指向一个不存在元素。
c.erase(pos) // 删除pos位置的数据,传回下一个数据的位置。
c.erase(beg,end) 删除[beg,end)区间的数据,传回下一个数据的位置。
c.front()    传回第一个数据。
get_allocator  使用构造函数返回一个拷贝。
c.insert(pos,elem) // 在pos位置插入一个elem拷贝,传回新数据位置
c.insert(pos,n,elem) // 在pos位置插入n个elem数据,无返回值
c.insert(pos,beg,end) // 在pos位置插入在[beg,end)区间的数据。无返回值
c.max_size()  返回容器中最大数据的数量。
c.pop_back()  删除最后一个数据。
c.push_back(elem)  在尾部加入一个数据。
c.rbegin()  传回一个逆向队列的第一个数据。
c.rend()  传回一个逆向队列的最后一个数据的下一个位置。
c.resize(num)   重新指定队列的长度。
c.reserve()  保留适当的容量。
c.size()  返回容器中实际数据的个数。
c1.swap(c2) // 将c1和c2元素互换

【C++ 与 STL】不定长数组:vector相关推荐

  1. 西门子1200/1500PLC不定长数组选择排序的运用编程实例

    前景介绍: 1.选择排序原理:选择排序算法首先从第1个位置开始对全部元素进行选择,选出全部元素中最小的给该位置,再对第2个位置进行选择,在剩余元素中选择最小的给该位置即可:以此类推,重复进行" ...

  2. java数组初始化和不定长数组处理方式

    初始化数组 1.动态初始化: 数组类型[] 数组名=new 数组类型[数组长度]; 2.静态初始化: 数组类型[] 数组名={数组0,数组1,数组2,数组3,......}; 3.静态省略初始化 数组 ...

  3. python输入定长数组和输入不定长数组

    输入定长数组 a,b,c = map(int,input().split( )) list = [a,b,c] print(list) 输入一维不定长数组 # arr = input('') #输入一 ...

  4. (C++)变长数组vector的常见用法

    目录 1. vector的定义 2. vector内的元素访问 3. vector常用函数 push_back(x) pop_back() size() clear() insert(it,x) er ...

  5. C++可变长数组vector的使用

    最近在刷算法,C++里自带的一些容器.函数真是非常简便了. 下面介绍一种可变长的数组,和数组类似,但比数组更强大更方便~~~ 可边长数组: vector<int> v(N,i); 头文件: ...

  6. java创建不定长数组_java如何创建不定长的数组?

    java如何创建不定长的数组? JAVA没法定义不定长的数组,要么声明为NULL,要么指定其长度.如果需要不定长的集合,我们可以采用ArrayList来解决. 1.首先声明一个集合listArrayL ...

  7. c语言定义不定长数组初始化_C语言如何定义一组长度不定的数组?

    1 引言 定长数组包 在平时的开发中,缓冲区数据收发时,如果采用缓冲区定长包,假定大小是 1k,MAX_LENGTH 为 1024.结构体如下: // 定长缓冲区 //公众号:c语言与cpp编程 st ...

  8. java创建不定长数组_java创建不定长的数组应该怎么做

    java创建不定长的数组应该怎么做 发布时间:2020-05-06 13:45:51 来源:亿速云 阅读:239 作者:小新 java创建不定长的数组应该怎么做?相信有很多人都不太了解,今天小编为了让 ...

  9. c语言不定长数组_学习C语言这三块“硬骨头”不搞定学了也是白学

    C语: C语言在嵌入式学习中是必备的知识,审核大部分操作都要围绕C语言进行,而其中有三块"难啃的硬骨头"几乎是公认级别的. 01指针 C语言 指针公认最难理解的概念,也是让很多初学 ...

最新文章

  1. 业界丨2018年人工智能和机器学习路在何方? 看看美国公司准备怎么做
  2. 织梦dedecms dede plus文件作用介绍及安全设置
  3. Android开发之--Preferences的使用
  4. C++后台开发需要什么?
  5. Linux 系统启动流程图/系统初始化流程图
  6. 惊了!最通俗易懂的Djongo入门竟然在这里!
  7. SVN插件版本过低1.6的已经不兼容现在新版的eclipse 了用 1.8X的吧
  8. PHP学习笔记【9】_表达式
  9. 用newlisp管理windows下的nginx
  10. python编程软件哪个好-来 看看谁最适合学Python编程
  11. 第一章 Java代码执行流程
  12. c语言输入相应的成绩评定信息,C语言上机练习题记答案.doc
  13. 【深度优先搜索】leetcode 1905. 统计子岛屿
  14. iOS开发 - 二维码的生成与读取
  15. 【人生参悟】纸上得来终觉浅,绝知此事要躬行
  16. 热爱生活热爱工作才是第一位的
  17. qgis 图片_QGIS简介
  18. 软件测试项目经理自我评价表,测试工程师自我评价范例列表
  19. PMBOK泛读(开篇) - 术语表
  20. 【24-业务开发-基础业务-品牌管理-图片管理-阿里云OSS服务开通和使用-阿里云OSS服务API使用-SpringCloudAlibaba OSS服务的使用】

热门文章

  1. serialable 和 parcelable详解
  2. SVN+网站服务器同步更新
  3. Hessian Spring相关使用的简单例子
  4. android 音乐播放器----获取专辑封面图片
  5. Intel彻底封杀Skylake非黑盒版超频
  6. Weaveworks增加发布自动化和事件管理
  7. 【转】远程桌面 剪切板复制文件失效解决方法
  8. 《Spring2之站立会议5》
  9. html5判断用户摇晃了手机(转)
  10. Tapioca:linux上同gtalk语音通信