zoukankan      html  css  js  c++  java
  • C++基础-vector数据结构(初始化,插入,删除, 数据交换, 分配内存, 二维数组 )

    1.vector的初始化 使用vector<int> myint{1, 2, 3, 4, 5}, 以及在vector中取数据, 使用.at或者[]

    int main1()
    {
        vector<int> myint{1, 2, 3, 4, 5};
    
        for(int i = 10; i < 20; i++)
        {
            myint.push_back(i);
        }
    //    cout << myint.front() << endl; //存储数据
    //    cout << myint.back() << endl;
      //  for(auto i:myint)
    //    {
       //     cout << i << endl;
        //}
        //myint.resize(5); //动态调整大小
    //    myint.resize(6, 90); //vector只有6个数据, 缓冲有90
    //    for(auto ib=myint.begin(), ie = myint.end(); ie != ib; ib++)
    //    {
    //        cout << *ib << endl;
    //    }
    
    //    for(auto rb=myint.rbegin(), re = myint.end(); re != rb; rb++)
        //{
    //        cout << *rb << endl;
        //}
    //    for(int i = 0; i < myint.size();++i)
    //    {
    //        cout << myint[i] <<" " << myint.at(i) << endl;
    //    }
    }

    2.vector中插入数据, 使用myint.insert(it, 400) 根据位置插入数据, 以及插入数组

    int main2()
    {
        //插入
        vector<int> myintX{11, 12, 13, 14, 15};
        vector<int> myint{1, 2, 3, 4, 5};
        //myint.assign(7, 100); //重新初始化
        auto it = myint.begin() + 3;
        int a[5] = {21, 22, 23, 24, 25};
    //    it = myint.insert(it, 400); //根据位置插入
    //    cout << *it << endl;
    //    it = myint.insert(it, a, a+5); //插入一个数组
        it = myint.insert(it, myintX.begin(), myintX.end()); //批量插入
          for(auto i:myint)
        {
             cout << i << endl;
        }
          return 0;
    }

    vector批量删除数据,使用.erase进行数据删除

    int main3()
    {
        vector<int> myint{1, 2, 3, 4, 5};
        auto it = myint.begin() + 3;
        //myint.erase(it);
        myint.erase(myint.begin(), myint.begin() + 3); //批量删除, 不包含最后的位置
        for(auto i:myint)
        {
            cout << i << endl;
        }
        return 0;
    }

    vector数据交换, 使用.swap进行数据交换

    int main4() {
        vector<int> myint{1, 2, 3, 4, 5};
        vector<int> myint2{3, 32, 33, 34, 35};
        myint.swap(myint2);
        for (auto i:myint) {
            cout << i << endl;
        }
        for (auto i:myint2) {
            cout << i << endl;
        }
    }

    vector获取分配器分配内存

    int main7() {
        vector<int> myint1;
        int *p = myint1.get_allocator().allocate(5); //获取分配器分配内存
        cout << myint1.size() << endl;
        for (int i = 0; i < 5; i++) {
            cout << (p[i] = i) << myint1[i] << endl;
        }
        myint1.get_allocator().deallocate(p, 5); //释放内存
    
        cin.get(); //自动管理内存
    }

    vector构造二维数组, 使用vector<vector<int>>

    int main()
    {
        vector<int> myint1{1, 2, 3, 4, 5};
        vector<int> myint2{1, 2, 3, 4, 5, 6, 7};
        vector<int> myint3{1, 2, 3};
        vector<vector<int>>myallint{myint1, myint2, myint3}; //构造vector的二维数组
        for(auto i:myallint)
        {
            for(auto j:i)
            {
                cout << j << " ";
            }
            cout << "
    ";
        }
        cin.get();
    }
  • 相关阅读:
    微信开发者工具http申请图片变成https
    vue 中v-for img src 路径加载问题
    nodejs内置模块querystring中parse使用问题
    用git上传项目到github遇到的问题和解决方法
    页面刷新——微信小程序生命周期探索
    小程序项目复盘(三) 用全局变量传参的问题
    小程序项目复盘(二) wx.request异步请求处理
    小程序项目复盘(一)字符串处理问题
    微信小程序中我常用到的CSS3弹性盒子布局(flex)总结
    wx.request中POST方法传参问题,用到JSON.stringify()
  • 原文地址:https://www.cnblogs.com/my-love-is-python/p/14941968.html
Copyright © 2011-2022 走看看