zoukankan      html  css  js  c++  java
  • vector 的用法(c++)

    vertor是向量类型,它是一个对象实体。它作为容器可以容纳不同的实体,如int,flout,double,还有类类型。

    1.包含头文件 #include <vector>

    2.声明:vector<int> vet;

    3.定义:

    vector<int> a(10);//定义了10个整数的向量,没有给初值,值不确定
    vector<int> b(10,1);//定义10个整数的向量,每个元素初值都是1
    vector<int> c(b);//用另一个向量创建新向量
    vector<int> d(b.begin(),b.begin()+3);//从b向量0到2元素的向量
    
    int arr[7]={1,2,3,4,5,6,7};
    vector<int> va(arr,arr+7);//从数组创建向量

    4.遍历:

    遍历有两种方式,一个是用下标遍历,类似数组,还有就是使用迭代器遍历,代码如下:

    //遍历:
    for(int i=0;i<a.size();i++){
        cout<<a[i]<<"  ";
    } 
    cout<<endl;
    
    vector<int>::iterator it;
    for(it=b.begin();it!=b.end();it++){
        cout<<*it<<"  ";
    }
    cout<<endl;

    5.在结尾处添加元素:va.push_back(8);

    6.删除结尾的元素:va.pop_back();

    7.查看向量的大小:va.size();

    8.查看向量是否为空:va.empty();

    9.插入元素:va.insert(va.begin()+3,10);

    10.删除某个元素:va.erase(va.begin()+3);

    10.清空所以元素:va.clear()

    算法: 包含头文件 #include <algorithm>

    1.sort(va.begin(),va.end()), 对向量进行排序。默认为从小到大。

    2.reverse(va.begin(),va.end()),对向量进行翻转

    代码:

    #include <iostream>
    #include <vector>
    #include <algorithm> 
    using namespace std;
    
    void print_vec(vector<int> & a){
        vector<int>::iterator it;
        for(it=a.begin();it!=a.end();it++){
            cout<<*it<<"  ";
        }
        cout<<endl;
    }
    
    int main(){
    
    vector<int> a(10);//定义了10个整数的向量,没有给初值,值不确定
    vector<int> b(10,1);//定义10个整数的向量,每个元素初值都是1
    vector<int> c(b);//用另一个向量创建新向量
    vector<int> d(b.begin(),b.begin()+3);//从b向量0到2元素的向量
    
    int arr[7]={1,2,3,4,5,6,7};
    vector<int> va(arr,arr+7);//从数组创建向量
    
    //遍历:
    for(int i=0;i<a.size();i++){
        cout<<a[i]<<"  ";
    } 
    cout<<endl;
    
    vector<int>::iterator it;
    for(it=b.begin();it!=b.end();it++){
        cout<<*it<<"  ";
    }
    cout<<endl;
    
    va.push_back(8);
    print_vec(va);
    
    va.pop_back();
    print_vec(va);
    
    a.assign(va.begin(),va.begin()+3);
    print_vec(a);
    
    a.assign(8,4);
    print_vec(a);
    
    a.clear();
    cout<<"clear"<<endl;
    print_vec(a);
     
     if(a.empty()) cout<<"empty"<<endl;
     
     a.resize(10);
     print_vec(a);
     a.clear();
     a.resize(10,2);
     print_vec(a); 
     
     //插入删除元素
     cout<<"插入和删除:"<<endl; 
     va.insert(va.begin()+3,10);//在该位置插入对应的元素 
     print_vec(va); 
     va.erase(va.begin()+3);//删除该位置的元素 
     print_vec(va); 
     
     if(a==b) cout<<"equal"<<endl;
     
     cout<<"size:"<<va.size()<<"front: "<<va.front()<<" back:"<<va.back()<<endl;
     
     //算法
     reverse(va.begin(),va.end());
     print_vec(va);
     
     sort(va.begin(),va.end());
     print_vec(va); 
     
    return 0;
    }
    
     
  • 相关阅读:
    JQ购物车+1-1
    [转载]DATEDIFF() 函数返回两个日期之间的时间
    [转载]js获取当前页面url网址信息
    [转载]Request获取文件路径
    JQ页面跳转
    [转载]Sql Server 日期格式化函数
    [转载]jQuery的attr()与prop()的区别
    [转载]获取验证码60秒倒计时
    [转载]JQ键盘事件
    [转载]SQL常用语句
  • 原文地址:https://www.cnblogs.com/yuqt/p/6008856.html
Copyright © 2011-2022 走看看