STL-vector

vector的使用详见程序,具有多种实例化的方式,可使用成员函数push_back()在末尾插入元素,可使用pop_back()删除末尾元素,可使用insert()在任意位置插入元素;有三种访问vector中元素的方法;并注意size()和capacity()的区别。

#include<iostream>
#include<vector>
#include<stdlib.h>

using namespace std;
void displayvector(const vector<int>& vecinput);
int main()
{
    //实例化的各种版本
    vector<int> vints;
    cout << "vints.size()=" << vints.size() << endl;
    vector<int> vvints(10); 
    cout << "vvints.size()=" << vvints.size() << endl;
    vvints.pop_back();
    cout << "vvints.size()=" << vvints.size() << endl;
    vector<int> vvvints(10, 90);
    vector<int> vintscopy(vvvints);
    cout << "vintscopy.size()=" << vintscopy.size() << endl;
    vector<int> vintssomecopy(vvvints.cbegin(), vvvints.cbegin() + 5);
    cout << "vintssomecopy.size()=" << vintssomecopy.size() << endl;
    vector<int> vintegers = { 1, 32, 4, 3 };
    cout << "vintegers.size()=" << vintegers.size() << endl;
    vector<int> vvintegers{ 1, 32, 4, 3 };
    cout << "vvintegers.size()=" << vvintegers.size() << endl;
    //push_back()在末尾插入元素
    vintssomecopy.push_back(10);
    vintssomecopy.push_back(-10);
    cout << "vintssomecopy.size()=" << vintssomecopy.size() << endl;
    //insert()在任意位置插入元素
    vector<int> vecintegers(4, 90);
    displayvector(vecintegers);
    vecintegers.insert(vecintegers.begin(), 25);
    displayvector(vecintegers);
    vecintegers.insert(vecintegers.end(), 2, 45);
    displayvector(vecintegers);
    vector<int> vecanother(2, 30);
    vecintegers.insert(vecintegers.begin() + 1, vecanother.begin(), vecanother.end());
    displayvector(vecintegers);
    //访问vector中的元素,有三种方法:
    //第一种:使用下标运算符[],以数组语法方式访问
    //第二种:使用成员函数at();
    //第三种:使用迭代器

    for (size_t index = 0; index < vecintegers.size(); index++)//使用下标运算符访问vector中的元素
    {
        cout << vecintegers[index] << ' ';
    }
    cout << endl;
    for (size_t index = 0; index < vecintegers.size(); index++)//使用下标运算符访问vector中的元素
    {
        cout << vecintegers.at(index) << ' ';
    }
    cout << endl;
    //从vector的末尾删除元素
    vecintegers.pop_back();
    cout << "vecintegers.size()="<<vecintegers.size() << endl;
    //vector的size()和capacity()
    vector<int> vv(5);
    cout << "size:" << vv.size() << endl;
    cout << "capacity:" << vv.capacity() << endl;
    vv.pop_back();
    cout << "size:" << vv.size() << endl;
    cout << "capacity:" << vv.capacity() << endl;

    vector<int> v(5);
    cout << "size:" << v.size() << endl;
    cout << "capacity:" << v.capacity() << endl;
    v.push_back(10);
    cout << "size:" << v.size() << endl;
    cout << "capacity:" << v.capacity() << endl;
    system("pause");
    return 0;
}

void displayvector(const vector<int>& vecinput)
{
    for (auto ielement = vecinput.cbegin(); ielement != vecinput.cend(); ++ielement)//使用迭代器访问vector中的元素
    {
        cout << *ielement << ' ';
    }
    cout << endl;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值