zoukankan      html  css  js  c++  java
  • STL-- vector

    1. 头文件

    #include<vector>

    2. 数组习惯用法

    vector<int> iVec(10);//定义10个整数
    iVec[0] = 10;//第一个元素赋值为10
    vector<int> iVec(10, -1);// 定义10个整数,每个整数被初始化为-1
    
    int ia[ 6 ] = { -2, -1, 0, 1, 2, 1024 };
    vector< int > iVec( ia, ia+6 );//把 ia 的 6 个元素拷贝到 ivec 中
    
    vector< int > ivec( &ia[ 2 ], &ia[ 5 ] );// 拷贝 3 个元素 ia[2], ia[3], ia[4] 

    3. STL 习惯用法

      1) 在尾部插入元素,push_back

    string word;
    while (cin>>word)
    {
      text.push_back(word);  
      ...
    }

      虽然还可以按照如下方式进行访问,

    cout << "words read are: 
    "; 
    for ( int ix = 0; ix < text.size(); ++ix ) 
          cout << text[ix] << ' ';

      但是,经典方式是使用vector操作集中的begin()以及end()所返回的迭代器iterator,

    cout<<"words read are:
    ";
    for (vector<string>::iterator it = text.begin(); it != text.end(); ++ it) {
        cout<<*it<<" ";  
    }
    cout<<endl;

      其中,iterator是标准库中的类,它具有指针的功能,而*it是对迭代器解引用,并访问其指向的实际对象,++it是向前移动,使得it指向下一个元素

      2) 不能混用这两种习惯用法,比

    vector<int> ivec; 
    ivec[0] = 1024; //错误的 ,因为 ivec 还没有第一个元素,我们只能索引 vector 中已经存在的元素 size()操作返回 vector 包含的元素的个数

      3) 类似地,当我们给定大小指定一个vector时,定义如下

    vector<int> ia( 10 );

    4. vector常用操作

    #include<vector> // 头文件
    
    vector<int> vec;//创建vector对象
    
    vec.push_back(a); //尾部插入数字
    
    cout<<vec[0]<<endl; //使用下标访问元素,0开始
    
    vector<int>::iterator it; //使用迭代器访问元素
    for (it = vec.begin(); it != vec.end(); it ++)
        cout<<*it<<endl;
    
    vec.insert(vec.begin()+i,a); //在第i + 1个元素前面插入a
    
    vec.erase(vec.begin()+2); //删除第3个元素
    vec.erase(vec.begin()+i,vec.end()+j);//删除区间[i,j-1];区间从0开始
    
    vec.size();// 向量大小
    
    vec.clear(); // 清空
    
    需要头文件,#include<algorithm>
    reverse(vec.begin(),vec.end());//将元素翻转(在vector中,如果一个函数中需要两个迭代器,一般后一个都不包含.) sort(vec.begin(),vec.end());//(默认是按升序排列,即从小到大).可以通过重写排序比较函数按照降序比较
  • 相关阅读:
    使用Intent传递类对象
    C#中关于类的序列化
    Android 中使用内存监测工具Heap,及内存分析工具 MAT
    Android Framework 记录之一
    Android 2.3发短信详细流程
    AIDL原理解析
    eclipse 快捷键
    什么时候加上android.intent.category.DEFAULT和LAUNCHER
    Monkey测试简介
    Phone状态的监听机制
  • 原文地址:https://www.cnblogs.com/yiyi-xuechen/p/4425640.html
Copyright © 2011-2022 走看看