zoukankan      html  css  js  c++  java
  • C++ STL vector 的一点点学习笔记(真的只有一点点)

    介绍:

           vector : 与数组类似,而不同之处是其大小是动态的,它不会造成内存的浪费和越界。随机访问和在末尾处的插入和删除操作比较快,虽然支持中间的插入和删除,但不怎么快,有机会专门写一篇其各项操作与数组之间速度比较。

    用法:

    1.头文件

    #include<vector>
    

    2.定义方式

    vector<int>vec1;      //定义一个int类型的vector
    vector<string>vec2;   //定义一个string类的vector
    vector<node>vec3;     //定义一个结构体类型的vector
    

    3.迭代器

    与数组进行 for 循环时用到的下标 i 类似,但比那个复杂,所要注意的也更多。

    vector<int>::iterator it;  //定义一个迭代器
    

    4.基本操作

    例子(输入输出):

    #include<vector>
    #include<iostream>
    using namespace std;
    
    int main()
    {
        vector<int>vec;
        vector<int>::iterator it;
        int n,temp;
        cin>>n;
        for(int i=0;i<n;++i)
        {
            cin>>temp;
            vec.push_back(temp);
        }
        for(it=vec.begin();it!=vec.end();++it)
        {
            cout<<*it<<endl;
        }
        for(int i=0;i<n;++i)
        {
            cout<<vec[i]<<endl;
        }
        return 0;
    }
    

    常用函数总结

    • 末尾添加元素: vec.push_back(data);
    • 末尾删除元素: vec.pop_back();
    • 任意位置插入元素: vec.insert(it,data);
    • 任意位置删除元素: vec.erase(it);
    • 删除[it_begin,it_end)的元素:vec.erase(it_begin,it_end);
    • 清空vector中的元素:vec.clear();
    • 开始指针:vec.begin();
    • 末尾指针:vec.end(); //指向最后一个元素的下一个位置
    • 返回第一个元素:vec.front();
    • 判断vector是否为空:vec.empty();//空1,非空0
    • 返回容器中的个数:vec.size();
    • 元素翻转
    #include <algorithm>
    reverse(vec.begin(), vec.end());
    
    • 元素排序
    #include <algorithm>
    sort(vec.begin(), vec.end()); //采用的是从小到大的排序
    //如果想从大到小排序,可以采用上面反转函数,也可以采用下面方法:
    bool Comp(const int& a, const int& b) 
    {
        return a > b;
    }
    sort(vec.begin(), vec.end(), Comp);
    

      

    参考资料:

    https://www.cnblogs.com/zhonghuasong/p/5975979.html

    http://www.cnblogs.com/aiguona/p/7228364.html

  • 相关阅读:
    手动创建DataSet数据集
    Ado.Net 参数化操作
    序列化和反序列化
    封装多个集合在一个类中
    窗体之间的传递
    C程序设计语言练习题1-12
    C程序设计语言练习题1-11
    C程序设计语言练习题1-10
    C程序设计语言练习题1-9
    C程序设计语言练习题1-8
  • 原文地址:https://www.cnblogs.com/l1l1/p/8542931.html
Copyright © 2011-2022 走看看