vetcor的基本操作

 

vector的基本操作

v.empty()如果V中不含有任何元素,返回真;否则返回假
v.size()返回v中元素的个数
v.push_backvector尾端中添加元素
v[n]返回V中第n个位置元素的引用
v1=v2v2中元素的拷贝替换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成员函数;

 

转载于:https://www.cnblogs.com/lwflourish/p/4204391.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值