• vector以及array和数组


    1. //比较数组、vector、array  
    2. #include <iostream>  
    3. #include <vector>  
    4. #include <array>  
    5. #include <iomanip>  
    6.   
    7. using namespace std;  
    8.   
    9. int main(void)  
    10. {  
    11.     /*1.构造方式 
    12.     * vector:有多种构造方式,不需要定义元素个数;除常见的初始化方式外,还可以 
    13.     * 通过vector和数组构造新的vector 
    14.     * array:定义时必须指定array的大小,可通过array构造新的array,不可使用数组构造 
    15.     * 数组:定义时必须指定array的大小,使用{}初始化 
    16.     */  
    17.     vector<int> myvector = {1,2,3,4,5};  
    18.     array<int, 5> myarray = {1,2,3,4,5};  
    19.     int myint[5] = { 1, 2, 3, 4, 5 };  
    20.   
    21.     /*2.访问方式 
    22.     * 三者均可通过下标运算符[]对元素进行操作,vector和array还可以通过at/front/back进行操作   
    23.     */  
    24.     cout << setw(10) << "vector" << setw(10) << "array" << setw(10) << "数组" << endl;  
    25.     for (int i = 0; i < 5; i++)  
    26.     {  
    27.         cout << setw(10) << myvector.at(i) << setw(10) << myarray.at(i) << setw(10) << myint[i] << endl;  
    28.     }  
    29.     /*3.遍历方式 
    30.     * vector和array还可以通过正向和反向迭代器对元素进行遍历 
    31.     */  
    32.     cout << "=============正向迭代器遍历=========="<< endl;  
    33.     for (vector<int>::iterator it = myvector.begin(); it != myvector.end();++it)  
    34.     {  
    35.         cout << *it << endl;  
    36.     }  
    37.     cout << "=============反向迭代器遍历==========" << endl;  
    38.     for (vector<int>::reverse_iterator it = myvector.rbegin(); it != myvector.rend(); ++it)  
    39.     {  
    40.         cout << *it << endl;  
    41.     }  
    42.     /*4.增删元素 
    43.     * vector可以通过push_back/pop_back/emplace/emplace_back/insert动态增删元素 
    44.     * array和数组无法实现动态增删元素 
    45.     */  
    46.     myvector.push_back(6);  
    47.     myvector.emplace_back(7);  
    48.     vector<int>::iterator it = myvector.end();  
    49.     myvector.insert(it, { 8, 9 });//在尾部插入元素,可通过it改变插入位置,也可以插入多个元素  
    50.     myvector.pop_back();  
    51.     cout << "=============动态增删元素==========" << endl;  
    52.     for (vector<int>::iterator it = myvector.begin(); it != myvector.end(); ++it)  
    53.     {  
    54.         cout << *it << endl;  
    55.     }  
    56.   
    57.     return 0;  
    58. }  



  • 相关阅读:
    winform中Dock的布局规则
    如何为VS添加编写NHibernate配置文件智能提示的功能
    c# winform 给PictureBox控件添上滚动条,使用滚动条来查看图片,panel滚动条
    Nhibernate使用中遇到的问题
    Best gotchas of C++/CLI
    关于progressbar
    对象序列化
    10个非常不错的CSS技巧
    清除浮动
    Sublime Text2 常用快捷键
  • 原文地址:https://www.cnblogs.com/linux-wang/p/8142767.html
Copyright © 2020-2023  润新知