vector

8 篇文章 0 订阅
vector(向量):

向量 vector 是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector 同属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以广义上认为是数组的增强版

一、vector的声明与初始化——vector <> a()
  • <数据类型>
  • a变量名
  • ()
    1.数字——(最大容量,初始所有值)
    vector < int> (10) //初始大小是10 的向量
    vector < int> (10,1) //初始大小是10,值均为1 的向量
    2.用其他向量初始化例已知向量b
    vector < int> b(a); //用向量a初始化向量b
    vector < int> b(a.begin(), a.begin()+3) ;//将a向量中从第0个到第2个(共3个)作为向量b的初始值
    3.用数组初始化例已知数组b[ ]
    vector< int > a(b, b+5) ;
    //将数组b的前5个元素作为向量a的初值
    vector< int > a(&b[1], &b[4]) ;
    //将b[1] - b[4]范围内的元素作为向量a的初值
二、输入输出

1.对其中部分元素进行输入

cin >>a[2] ;
cin >>a[5] ;
cin >>a[6] ;

2.全部输出

 int i ;
 for(i=0; i<a.size(); i++)
 cout<<a[i]<<" " ;

在上例中讲元素全部输出部分的代码就可以改写为:

  vector<int>::iterator t ;
  for(t=a.begin(); t!=a.end(); t++)
  cout<<*t<<" " ;
  • (a.begin() , a.begin()+3) 表示向量起始元素位置到起始元素+3之间的元素位置。(a.begin() , a.end())则表示起始元素和最后一个元素之外的元素位置。
  • *t 为指针的间接访问形式, 意思是访问t所指向的元素值。
三、基本操作

a.size(); //向量a中元素个数
a.empty(); //判断向量是否为空
a.clear(); //清空向量中元素
a.insert( , , ); //插入
a.erase( , ) ; //删除
b.swap(a) ; //交换向量a,b
复制 a=b;
比较

  • 保持 ==、!=、>、>=、<、<= 的惯有含义 ;
  • 如: a == b ; //a向量与b向量比较, 相等则返回1

1.a.insert( , , );

  • (&&,@@)—— 将@@插入到&&前
  • (, ,)
    ①(&&,3,@@)——在&&前插入3个@@
    ② b.insert(b.begin(), a.begin(), a.end()) ;
    //将a.begin(), a.end()之间的全部元素插入到b.begin()前

2.a.erase( , );

  • ()删除单一元素
    b.erase(b.begin()) ; //将起始位置的元素删除
  • (,)将之间元素删除

b.erase(b.begin(), b.begin()+3) ; //将(b.begin(), b.begin()+3)之间的元素删除

参考:https://www.cnblogs.com/aminxu/p/4686332.html.

STL库:

vector是C++ STL库中的内容

C++ STL——标准模板库
是一套功能强大的 C++ 模板类,提供了通用的模板类和函数
这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。

一、STL包括以下三个组件:容器、算法、迭代器
  • 容器:
    用来管理某一类对象的集合。
    C++ 提供了各种不同类型的容器,比如 deque、list、vector、map 等。
  • 算法:
    提供了执行各种操作的方式,作用于容器。
    如对容器内容执行初始化、排序、搜索和转换等操作。
  • 迭代器
    用于遍历对象集合的元素。这些集合可能是容器,也可能是容器的子集。
二、一些函数:

push_back( ) 在向量的末尾插入值,如果有必要会扩展向量的大小。
size( ) 显示向量的大小。
begin( ) 返回一个指向向量开头的迭代器。
end( ) 返回一个指向向量末尾的迭代器。

参考:https://www.cnblogs.com/xxyue/p/9051509.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值