zoukankan      html  css  js  c++  java
  • 【算法专题】工欲善其事必先利其器—— C++ STL中vector(向量/不定长数组)的常用方法总结

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<string>
     4 #include<vector>//不定长数组(向量)所需要包含的头文件 
     5 
     6 using namespace std;
     7 
     8 const int maxn = 30;
     9 
    10 int n;
    11 
    12 int arr[5]={1,2,3,4,5};
    13 /*不定长数组的声明方法*/
    14  
    15 vector <int> pile;
    16 //vector<T> v1            vector保存类型为T的对象。默认构造函数,v1为空
    17 vector <int> pile_copy;
    18 //vector<T> v2(v1)        v2是v1的一个副本
    19 vector <int> pile2(3,5);
    20 //vector<T> v3(n,i)        v3包含n个值为i的元素
    21 vector <int> pile3(3);
    22 //vector<T> v4(n)          v4含有值初始化的元素的n个副本 如果为整形(int) 则为0 若为字符串(string)类型 则为空
    23 vector <int> pile4{1,2};
    24 //初始化第一个元素为1,第二个元素为2,其余按照默认值(0)初始化
    25 vector <int> pile5(arr,&arr[5]);    
    26 //以区间(beg;end)做为初值的vector
    27 /*
    28 此外不定长数组不限于基本类型 还可以是结构体类型(结构体要定义为全局的,否则会出错)
    29 也可以是声明不定长类型的二维数组 
    30 */ 
    31 vector <vector <int> > pile6;//声明一个二维不定长数组
    32   
    33 /* 不定长数组的使用方法*/
    34 
    35 pile.push_back(1);
    36 //尾部插入数字 1 
    37 pile.pop_back();
    38 //在尾部删除一个元素
    39 cout<<pile2[1]<<endl;
    40 //可以用数组方法访问不定长数组元素
    41 pile3.assign(arr,&arr[5]);
    42 //吧arr[0]到arr[5]中的元素进行拷贝 
    43 vector<int>::iterator it;
    44 //声明一个叫it的整形的迭代器 
    45 for(it=pile2.begin();it < pile2.end(); it++)
    46     cout<<*it<<endl;
    47 //利用迭代器对不定长数组进行遍历 
    48 //pile2.end();指向最后一个元素的下一个位置 
    49 /*关于迭代器:
    50 迭代器(Iterator),提供了访问容器中对象的方法。
    51 例如,可以使用一对迭代器指定list或vector中的一定范围的对象。
    52 迭代器就如同一个指针。事实上,C++的指针也是一种迭代器。
    53 但是,迭代器也可以是那些定义了operator*()以及其他类似于指针的操作符地方法的类对象;*/
    54 pile2.insert(pile2.begin()+i,a);
    55 //在第i+1个元素前面插入a;
    56 pile2.eraser(pile2.begin()+2);
    57 //删除第3个元素 
    58 pile2.erase(pile2.begin()+i;pile2.begin()+j);
    59 //删除i到j-1的区间(从0开始)
    60 cout<<pile2.size()<<endl;
    61 //获取当前不定长数组的大小
    62 pile2.clear();
    63 //清空向量 
    64 cout<<"pile大小是否为0:"<< (pile.empty()?"":"不空")<<endl;
    65 //判断pile是否为空
    66 cout<<"pile可容纳的元素最大数量:"<<pile.max_size()<<endl; 
    67 //判断Pile可容纳的最大数量
    68 pile.resize(5); 
    69 //将元素数量改成5,如果pile变大,则多的按默认走
    70 pile.resize(5,9); 
    71 //将元素数量改成5,如果pile变大,则多的赋值成9

    拓展阅读:

    推荐博客地址: 对vector的用法及定义有较为详细的讲解 使用时可以留作参考

  • 相关阅读:
    迷茫 分类: 工作生活经历 20081221 00:46 139人阅读 评论(0) 收藏
    舍得 分类: 工作生活经历 20090614 12:52 142人阅读 评论(0) 收藏
    计算机体系结构 分类: 工作生活经历 20090614 13:01 143人阅读 评论(0) 收藏
    状态不佳 20090115 00:24 150人阅读 评论(0) 收藏
    数字电路 分类: 工作生活经历 20090210 23:18 178人阅读 评论(0) 收藏
    About
    最终还是用了wordpress 你好wordpress
    oa项目 发送提示消息接口
    php获取文件后缀函数
    世界,你好!
  • 原文地址:https://www.cnblogs.com/KID-XiaoYuan/p/6279364.html
Copyright © 2011-2022 走看看