• vetcor的基本操作


    vector的基本操作

    v.empty() 如果V中不含有任何元素,返回真;否则返回假
    v.size() 返回v中元素的个数
    v.push_back vector尾端中添加元素
    v[n] 返回V中第n个位置元素的引用
    v1=v2 v2中元素的拷贝替换v1中的元素
    v1={a,b,c,d} 用列表中的元素拷贝替换v1中的元素
    v1==v2 比较1
    v1!=v2 比较2
    <,>=,>,>= 比较3

    vector编程

    #include <iostream>
    #include <vector>
    using namespace std;
    
    
    int main()
    {
        //vector初始化方法
        vector<int> v1; //声明空vector对象
        vector<int> v2(10, 0);//10个0
        vector<int> v3{ 0, 1, 2, 3, 4, 5, 6 };
        vector<int> v4;
        //向vector中添加对象
        for (int i = 0; i<10; ++i)
        {
            v1.push_back(i);
        }
    
        //检查vector是否为空对象
        if (v1.empty())
        {
            cout << "v1 is empty!" << endl;
        }
        else
        {
            cout << "v1 has " << v1.size() << " elements" << endl;//使用size成员函数返回vector中元素的个数
        }
    
        v4 = v3;//vector可以进行赋值操作
    
        if (v3 == v4)//vector的关系运算
        {
            cout << "v3==v4" << endl;
        }
        //vector对象的输出
        for (auto i : v1)//表达方法1
            cout << i << " ";
        cout << endl;
        for (vector<int>::const_iterator beg = v1.begin(); beg != v1.end(); ++beg)//方法2
        {
            cout << *beg <<" ";
        }
        cout << endl;
    
        cout << "v2 value:" << endl;
        for (auto i : v2)//表达方法1
            cout << i << " ";
        cout << endl;
        cout << "v3value:" << endl;
        for (auto i : v3)//表达方法1
            cout << i << " ";
        cout << endl;
        cout << "v4 value:" << endl;
        for (auto i : v4)//表达方法1
            cout << i << " ";
        cout << endl;
        return 0;
    }

    vector下标索引错误
    vector对象(以及string对象)的下标运算符可用于访问已存在的元素,而且不能用于添加元素

    错误实例:

    vector<int> ivec;//空vector对象
    for (decltype(ivec.size()) ix = 0; ix != 10; ++ix)
        ivec[ix] = ix;//严重错误


    编译器不会报错,但是在调试过程中出现严重错误,如下:

    缓冲区泄露;其次给vector对象赋值,最好选用范围for语句,访问不存在的元素会产生缓冲区泄露,添加元素可以采用push_back成员函数;

  • 相关阅读:
    批量替换文本的工具
    wcf异常显示错误到客户端
    文件以二进制存入数据库和从数据库读取二进制文件
    关于关系数据库的范式
    对于挑战书上的很久之前都看不懂的DP看懂的突破
    操作系统概念
    关于P,V操作理解的突破,关于并发设计与并行
    关于快速沃尔什变换
    我觉得我应该养成经常翻收藏夹的习惯
    目前我的思考模式
  • 原文地址:https://www.cnblogs.com/lwflourish/p/4204391.html
Copyright © 2020-2023  润新知