vector动态数组

//使用vector动态数组需要引入头文件<vector>,如何构建一个动态数组呢?
//vector<int>arr 即构建了一个int型的名为arr的动态数组,初始时数组为空
//动态数组的结构不只是int,char,string,也可以自定义结构体。
// 假如要构造N个1的动态数组,即可vector<int>vec(N,1),比循环更省空间。
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main() {
    vector<int>arr;
    arr.push_back(1);
    arr.push_back(2);
    arr.push_back(4);
    arr.push_back(3);
    arr.push_back(2);
    for (int i = 0; i < arr.size(); i++) {
        cout << arr[i] << endl;
    }
    arr.pop_back();//顶部删除 
    cout << "arr的长度:" << arr.size() << endl;
    //arr.clear()只是清空数组里的元素,而不清空数组所占用的内存。
    //有一种方式可以清空内存,就是交换。新建一个动态数组,将要清除的数组与其交换。
    //vetctor<int>b;
    //vector<int>().swap(b);
    arr.clear();
    cout << "arr的长度:" << arr.size()<<endl;
    vector<int>b;
    b.push_back(1);
    b.push_back(2);
    b.push_back(3);
    b.push_back(2);
    auto it = find(b.begin(), b.end(), 2)-b.begin();//auto it=find(b.begin(),b.end(),x);it是指针,该用法是查找第一个x出现时的下标。
    cout << "第一个2的下标是:" << it<<endl;
    //二维数组
    vector<vector<int> >vec2;
    int k = 3;
    for (int i = 0; i < k; i++) {
        vector<int>TD(1 + i, 2);//行
        vec2.push_back(TD);//放到列里面
    }
    //TD[0]={2};vec2[0]=TD[0]={2};
    //TD[2]={2,2};vec2[1]=TD[1]={2,2};
    //TD[3]={2,2,2};vec2[2]=TD[2]={2,2,2};
    //实际上就是
    //2
    //2 2
    //2 2 2
    //[0][0]
    //[1][0] [1][1]
    //[2][0] [2][1] [2][2]
    for (int i = 0; i < k; i++) {
        for (int j = 0; j < vec2[i].size(); j++) {
            cout << vec2[i][j] << " ";
        }
        cout << endl;
    }


    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值