C++中vector用法

vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。vector可以存放任意类型的数据:int,long,char,结构体等多种数据类型。

1.在使用vcetor前,需要包含头文件:

#include <vector>
2. vector属于std命名空间,因此需要通过命名空间来限定:

std::vector<int> ivec;
也可以定义全局的命名空间:
using namespace std;
vector<int>  ivec

3. 定义和初始化vector有四种方式:

vector<T>  v1;  保存类型为T的对象。默认构造函数,变量v1为空
vector<T>  v2(v1);  v2是v1的副本
vector<T>  v3(n, i); v3包含n个值为i的元素
vector<T>  v4(n);    v4含有值初始化的元素的n个副本。
4. 向vector添加一个数据: vector添加数据的缺省方法是push_back()。push_back()函数表示将数据添加到vector的尾部,并按需要来分配内存。例如:向vector<int>中依次添加0,1,2,...... ,9共10个数据,注意:数据都是从尾部依次插入。需要如下编写代码:

for(vector<int>::size_type i= 0;i<ivec.size(); i++)
    ivec.push_back(i) ;
 

5. 使用下表操作访问vector元素:

for(vector<int>::size_type i= 0;i<ivec.size(); i++)
{
   ivecData = ivec[i] ;
   cout<<"ivec = "<<ivec[i] <<endl;
}
 

下标操作可以输出vector的value值.

6.删除元素操作:

ivec.erase(ivec.begin());// 删除第一个元素
ivec.erase(ivec.begin()+2);//删除第3个元素
ivec.erase(ivec.begin()+i,ivec.end()+j);//删除区间[i,j-1];区间从0开始
ivec.pop_back(); //删除最后一行数据
7. vector排序操作:

sort(vec.begin(),vec.end());//默认是按升序排列,即从小到大.

bool Comp(const int &a,const int &b)
{
    return a>b;
}
sort(vec.begin(),vec.end(),Comp) //降序排序
8.vector 清空:

ivec.clear();  //清空内容,但是的内存空间还在
vector<int>(ivec).swap(ivec);  //清空vector并最小化它的内存空间
9.vector作为函数的形参进行传递:

直接传递vector类型的参数:
#include <iostream>
#include <vector>

using namespace std;
void cv(vector<int> a)
{
 vector<int>::iterator itp=a.begin();

 while (itp!=a.end() )
    cout<<*itp++<<endl;

}
int main(void)
{
 vector<int> b;
 b.push_back(6);
 b.push_back(5);
 b.push_back(7);
 cv(b);
 return 0;
}

传递迭代器:
#include <iostream>
#include <vector>

using namespace std;
void cv(vector<int>::iterator begin,vector<int>::iterator end)
{

while (begin!=end )
    cout<<*begin++<<endl;

}
int main(void)
{
 vector<int> b;
 b.push_back(6);
 b.push_back(5);
 b.push_back(7);
 cv(b.begin(),b.end() );
 return 0;
}









  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C++vector是一个非常有用的容器,可以存放任意类型的动态数组,并且可以增加和压缩数据。使用vector的基本操作包括插入元素、删除元素、查找元素等。其,查找元素可以使用find函数,例如find(a.begin(),a.end(),10)可以在vector a查找元素10,并返回其在向量的位置。 另外,输出vector的元素有三种方法。第一种方法是使用下标方式打印vector,可以使用for循环遍历vector并输出元素,例如: ``` for(int i=0;i<nSize;i++) { cout<<vecClass[i]<<" "; } cout<<endl; ``` 第二种方法也是使用下标方式打印vector,但是使用at函数代替下标操作,例如: ``` for(int i=0;i<nSize;i++) { cout<<vecClass.at(i)<<" "; } cout<<endl; ``` 第三种方法是使用迭代器方式打印vector,可以使用for循环和迭代器遍历vector并输出元素,例如: ``` for(vector<float>::iterator it = vecClass.begin();it!=vecClass.end();it++) { cout<<*it<<" "; } cout<<endl; ``` 需要注意的是,使用迭代器方式打印vector时,输出某一指定的数值可能不太方便。在C++,还可以使用迭代器访问vector的元素,可以使用for循环和迭代器遍历vector,并通过迭代器访问元素进行操作,例如: ``` vector<int>::iterator it; for(it=array.begin();it!=array.end();it++) { cout<<*it<<endl; } ``` 这样可以依次输出vector的元素。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [C++vector使用方法](https://blog.csdn.net/weixin_44607113/article/details/123738389)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值