C++中vector用法

本文介绍了C++中的vector,一种动态大小的数组容器。内容包括vector的基本操作、迭代器的使用,以及sort和find等常用函数的应用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

vector是C++中STL的一员,也就是众所周知的向量。

向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组

基本操作

vector包含在vector头文件里,记得加上

#include <vector>
using namespace std;

然后就是定义、扩展元素、访问

#include <iostream>
#include <vector>
using namespace std;

int main() {
	//定义int类型的空向量
	vector<int> v;
	
	//显示v的原始大小
	cout << "V size = " << v.size() << endl;

	//推入5个元素到v中
    for (int i = 0; i < 5; i++)
    	v.push_back(i);

	//显示现在v的大小
	cout << "extended v size=" << v.size() << endl;

	//访问5个元素
	for (int i  = 0; i < 5; i++)
		cout << v[i] << ' ';

	return 0;
}

结果为:

0
5
1 2 3 4 5

迭代器

简而言之,就是用迭代器访问数值。注意v.end()代表向量元素最后一个元素的下一个位置
所以,直接上code:

	//定义
	vector<int>::iterator it;

	//访问(迭代器是指针,别忘加*)
	for (it = v.begin(); it < v.end(); it++)
		cout << *it << ' ';

常用函数

sort

sort函数的第二个参数是数组或向量的最后一个元素的下一个位置,
所以sort在vector下这么用:
前提:

bool cmp(int x, int y) {
	return x < y;
}

然后:

sort(v.begin(), v.end(), cmp);

结果为:

5 4 3 2 1

find

algorithm中的find函数,vector本身没有这一函数

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> c;
int main() {
	for (int i = 0; i < 6; i++)
		c.push_back(i);
	c.find(5);
}
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、付费专栏及课程。

余额充值