C/C++基础— —vector基本操作

本文介绍了C++ STL中的vector类,包括其定义、初始化和常用操作,如插入、删除元素,以及如何遍历和检查vector的状态。通过代码示例展示了如何在vector中插入元素、删除元素以及遍历vector的内容。
摘要由CSDN通过智能技术生成

C/C++基础— —vector基本操作

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



前言

vector不是一种数据类型,而只是一个类模板,可用来定义任意多种数据类型。vector类型的每一种都指定了其保存元素的类型。因此,vector和vector 都是数据类型。


一、基本知识

1.vector对象的定义和初始化

定义含义
vector<‘T> v1vector保存类型为T的对象。默认构造函数v1为空。
vector<‘T> v2(v1)将v1中的元素拷贝到v2
vector<‘T> v3(n, i)v3包含n个值为i的元素。
vector<‘T> v4(n)v4含有n个默认值

vector对象动态增长

2.vector的操作

操作含义
v1 = v2将v2中的元素拷贝到v1
v.empty()是否为空
v.size()输出大小
v.push_back()在末尾插入元素
v.insert(it,value)在迭代器it之前插入值value
v.pop_back()删除末尾的元素
v.erase(it)删除迭代器it所指向的元素
v.clear()清空vector中的所有元素

3.代码示例

vec.insert(vec.begin(),10);//在开始插入10
//在0之前插入11
for(vector<int>::iterator it = vec.begin(); it != vec.end(); it++) {
	if ( *it == 0) {
		vec.insert(it, 11);
		break;
	}
}
//vec.erase(it)举例
int i = 0;
for (vector<int>::iterator it = vec.begin(); it != vec.end(); it++){
	i++;
	if (i == 2) {
		vec.erase(it);
		break;
	}
}
//利用下标遍历
for (int i = 0; i != vec3.size(); i++) {
	cout<<"cccc"<<vec3[i]<<endl;
}

#include<iostream>
#include<vector>
using namespace std;
int main(){
	vector<int> vec;

	int i;
	for (int i = 0; i < 5; i++){
		vec.push_back(i);
	}
	vector<int>::iterator it = vec.begin();
	while (it != vec.end()) {
		cout<<"aaaa"<< *it<<endl;
		it++;
	}
	vector<int> vec2(vec);
	cout<<"vec2.size()"<<vec2.size()<<endl;
	for (vector<int>::iterator it2 = vec2.begin(); it2 != vec2.end(); it2++) {
		cout<<"bbbb"<< *it2<<endl;
	}
	vector<int> vec3;
	vec3 = vec2;
	vec2.push_back(5);
	cout<<"vec2.size()"<<vec2.size()<<endl;
	for (vector<int>::iterator it3 = vec3.begin(); it3 != vec3.end(); it3++) {
		cout<<"cccc"<< *it3<<endl;
	}	
	vector<int> vec4;
	for (int i = 0; i < 5; i++) {
		vec4.push_back(i);
	}

	vec4.insert(vec4.begin(),10);//在开始插入10
	//在0之前插入11
	for(vector<int>::iterator it = vec4.begin(); it != vec4.end(); it++) {
	if ( *it == 0) {
		vec4.insert(it, 11);
		break;
	}
	}
	for (vector<int>::iterator it = vec4.begin(); it != vec4.end(); it++) {
		cout<<"dddd"<< *it<<endl;
	}	
	//	vec4.clear();
	cout<<"vec4.size()"<<vec4.size()<<endl;
	for (int i = 0; i != vec3.size(); i++) {
		cout<<"cccc"<<vec3[i]<<endl;
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值