C++ STL学习笔记1--vector

本文详细介绍了C++ STL中的vector容器,包括5种构造函数、增加和删除元素的方法、判断向量状态的函数、遍历及交换操作。通过示例展示了如何使用push_back、insert、erase、at、front、back等成员函数进行元素管理,并提供了完整的main函数示例代码。

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

一.vector

头文件# include<vector>

构建函数5种:

 1.vector<type>test;

   test.push_back(element);


 例:vector<int>test;

        test.push_back(1);

 2.vector<type>test(size);

例:vector<int>test(10);

       for(int i=0;i<10;i++)

    test.push_back(i);

 3.vector<type>test(size,element);

例:vector<int>test(10,10);

4.vector<type>test(a,a+n);

例:int a[5]={1,2,3,4,5};

       vector<int>test(a,a+5);

5.vector<type>test<const vector&>

复制构造函数

二、vector具有的操作:

1.增加元素

   《1》void push_back(element);//element可以是简单类型,也可以是自定义类

  例:test.push_back(1);//在尾部添加一个元素

   《2》iterator insert(iterator it,type x);

返回类型为:iterator,在迭代器it之前添加一个元素

  《3》void insert(iterator it,int n,type x);

   //在迭代器it之前添加n个x

《4》void insert(iterator it,const_iterator first,const_iterator last);

 //在迭代器it之前插入另一个相同类型的向量在区间[first,last)内的元素

2.删除函数

 《1》iterator erase(iterator it);//删除迭代器it指向的元素

 例:vector<int>test;

test.push_back(1);

test.push_back(2);

test.push_back(3);

test.push_back(4);

test.erase(test.begin()+2);//删除第三个元素

《2》iterator erase(iterator first,iterator last);//删除区间[first,last)内的元素

 

 例:vector<int>test;

test.push_back(1);

test.push_back(2);

test.push_back(3);

test.push_back(4);

test.erase(test.begin(),test.begin+2);//删除0到2个元素

《3》void pop_back();//删除向量中最后一个元素

《4》void clear();//删除向量中所有元素

3判断是否为空

 bool empty() const;//true为空

4判断向量大小

 《1》int size() const;

    例:vector<int>test;

test.push_back(1);

test.push_back(2);

test.push_back(3);

test.push_back(4);

int size=test.size();//获得向量空间大小

《2》int capacity const;//返回当前向量所能容纳的最大元素值;

《3》int max_size() const;//返回最大可允许的vector的数量

5.遍历函数

 《1》reference at(int pos);//获得破损位置元素的引用

 例:vector<int>test;

test.push_back(1);

test.push_back(2);

test.push_back(3);

test.push_back(4);

for(int i=0;i<4;i++)

{

 int &nValue=test.at(i);

  cout<<nValue<<"/t";

}

《2》reference front();//返回首元素的引用

 《3》reference back();//返回尾元素的引用

例:vector<int>test;

test.push_back(1);

test.push_back(2);

test.push_back(3);

test.push_back(4);

int &avalue=test.front(); //  获得首元素的引用

int &bvalue=test.back();//获得尾元素的引用  

《4》iterator begin();//返回向量头指针

《5》iterator end();返回向量尾指针后面的指针,end()-1指向最后一个元素

《6》reverse_iterator rbegin();//反向迭代器,最后一个元素指针

 《7》reverse_iterator rend();//反响迭代器,第一个元素之前的指针

6.交换类函数

 《1》void swap(vector&);//交换两个同类向量数据

  《2》void assign(int n,const type x);//向量中第n个元素设为x

 《3》void assign(const_iterstor first,const_iterator last);//向量中[first,last)之间的元素设置为当前向量中的元素

整理例子:

 

 # include<stdio.h>

 #include<iostream>

 #include<vector>

 using namespace std;

 int main(int argc,char *argv[])

{

  vector<int>test;

for(int i=0;i<10;i++)

test.push_back(i);

 int size=test.size();

//下面是各种方式的输出,三种输出方式也就意味着有三种改变向量元素值得方法

int j=0;

for(j=0;j<size;j++)

cout<<test[j]<<"\t";//类似于数组的输出

cout<<endl;

for(j=0;j<size;j++)

{

int &value=test.at(j);

cout<<value<<"\t";//引用的输出
}

cout<<endl;

 

vector<int>::iterator it=test.begin();

while(it!=test.end()){

 

cout<<*it<<"\t";//迭代器的输出

it++;

}

cout<<endl;

return 0;

}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值