c++入门vector标准库操作

使用 vector 之前,必须包含相应的头文件,vector 属于 std 命名域的,因此需要通过命名限定:

   #include<vector>
   using std::vector; //using namespace std;
vector 对象的定义和初始化

在这里插入图片描述

vector<int> a;
vector<int> b(a);
vector<string> a(6,'a');
vector<int> a(10);
常见操作

在这里插入图片描述

#include <iostream>
#include<vector>
using namespace std;
int main(){
          vector<int> a(5); //创建5个int类型vector对象,相当于a[5],每个元素的值为0
          if( true == a.empty() ){
             cout << "it is empty\n";
          }else if(false == a.empty() ){ //结果不为空
          cout << "it is not empty\n";
          }
          //返回 a 中元素的个数。	
          cout << "size = " << a.size() << endl; // 结果为10
          // 在 a 的末尾增加一个值为 5 的元素。	
          // 本来有5个元素,再添加一个,变为6个
          
          a.push_back(5);
          //下标操作元素,有6个元素,0~5	
          //打印最后一个元素	
          cout << a[a.size() -1] << endl; //结果为 5
          
          // 下标法,把所有元素的值打印出来	
          // vector<int>::size_type 可以当做 int 使用
          for(vector<int>::size_type i = 0; i != a.size(); i++)      {	
          cout << a[i] << ", ";
          }	
          cout << endl;
          
          a.pop_back(); //删除容器最后位置处的元素
          
          // 下标法,给所有元素赋值
          for(vector<int>::size_type i = 0; i != a.size(); i++)      { 
          a[i] = 5;
          }
          
          // 把 a 所有元素的值打印出来
          for(vector<int>::size_type i = 0; i != a.size(); i++){		
          cout << a.at(i) << ", ";
          }
          
          cout << endl;
          
          vector<int> b = a; //b是a的复制品
          for(vector<int>::size_type i = 0; i != a.size(); i++){		
          cout << b[i] << ", ";	
          }
          a.clear(); //清除所有元素
          cout << "size after clear = " << a.size() << endl;
          return 0;
}
迭代器操作 vector 对象

标准库还提供了另一种访问元素的方法:使用迭代器(iterator) 。迭代器是一种检查容器内元素并遍历元素的数据类型。实际上,vector 对象相当于数组,而迭代器就相当于指针
每种容器类型都定义了自己的迭代器类型,如 vector

 vector<int>::iterator iter;

在这里插入图片描述

#include <iostream>
#include <vector>
using namespace std;
int main(){
    vector<int> v(6, 5); //有6个元素,每个元素的值都是5
    
    //通过迭代器把所有元素的值打印出来
    vector<int>::iterator it;	
    for( it=v.begin(); it!=v.end(); it++){
    	 cout<< *it << ", ";
    }
    cout << endl;

    //通过迭代器给所有元素赋值为1
    for( it=v.begin(); it!=v.end(); it++){
    	*it = 1;
    }
    cout << endl;
    
     it = v.begin(); //返回指向容器最开始位置元素的指针(迭代器) 
      
     //删除指针it+1指向位置的元素,返回指向下一个元素位置的指针(迭代器)
    v.erase(it+1); 
    cout << endl << "after erase:\n";
    //通过迭代器把所有元素的值打印出来
    for( it=v.begin(); it!=v.end(); it++)
    {
        cout<< *it << ", ";	
    }	
    cout << endl;


    it = v.begin(); 
    
    //在位置it后插入3个6
    v.insert(it, 3, 6);
    //通过迭代器把所有元素的值打印出来
    
    for( it=v.begin(); it!=v.end(); it++){
    	cout<< *it << ", ";
    }	
    cout << endl;
    return 0;
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值