zoukankan      html  css  js  c++  java
  • 数组容器的操作

     1 #include<iostream>
     2 #include<array>
     3 #include<exception>
     4 
     5 
     6 void display(std::array<int, 10> &arr)
     7 {
     8     for (size_t i{}; i < arr.size(); ++i)  //size_t代表unsigned int, i{} 相当于 i = 0, {}也可以对容器内部所有元素赋上初值0
     9     {
    10         std::cout << arr[i] << " ";
    11     }
    12     std::cout << std::endl;
    13 }
    14 void test01()
    15 {
    16     std::array<int, 10> volumn;
    17     volumn.fill(5);  //容器内所有都填入同样的数值
    18     display(volumn);
    19 
    20     try
    21     {
    22         volumn.at(10);  //会抛出异常,而采用[]的方式会直接访问越界导致程序崩溃。
    23     }
    24     catch (std::exception &e)
    25     {
    26         std::cout << "out of bound" << std::endl;
    27     }
    28 
    29     if (volumn.empty())  //判断容器是否为空
    30     {
    31         std::cout << "the container has no elements" << std::endl;
    32     }
    33     else
    34     {
    35         std::cout << "the container has " << volumn.size() << " elements" << std::endl;
    36     }
    37     
    38     /*C11的遍历方式,atuo可以自动识别出数据类型,必须通过引用才能修改值*/
    39     int start = 1;
    40     for (auto &value : volumn)
    41     {
    42         value = start;
    43         ++start;
    44     }
    45 
    46     /*使用迭代器*/
    47     for (std::array<int, 10>::iterator vt = volumn.begin(); vt != volumn.end(); ++vt)
    48     {
    49         std::cout << *vt << " ";
    50     }
    51     std::cout << std::endl;
    52 
    53     /*使用反向迭代器*/
    54     for (std::array<int, 10>::reverse_iterator vt = volumn.rbegin(); vt != volumn.rend(); ++vt)
    55     {
    56         std::cout << *vt << " ";
    57     }
    58     std::cout << std::endl;
    59     for (auto vt = volumn.rbegin(); vt != volumn.rend(); ++vt)
    60     {
    61         std::cout << *vt << " ";
    62     }
    63     std::cout << std::endl;
    64     /*将所有元素赋值为100*/
    65     volumn.assign(100);
    66     display(volumn);
    67 
    68 
    69 }
    70 
    71 int main()
    72 {
    73 
    74     test01();
    75     system("pause");
    76     return 0;
    77 }

    5 5 5 5 5 5 5 5 5 5
    out of bound
    the container has 10 elements
    1 2 3 4 5 6 7 8 9 10
    10 9 8 7 6 5 4 3 2 1
    10 9 8 7 6 5 4 3 2 1
    100 100 100 100 100 100 100 100 100 100
    请按任意键继续. . .

  • 相关阅读:
    vsftp搭建
    进程管理相关命令(15 个)
    系统管理与性能监视命令 (9 个)
    系统权限及用户授权相关命令(4 个)
    用户管理命令(10个命令)
    深入网络操作命令(9条命令)
    查看系统用户登陆信息的命令(7 个)
    查看文件及内容处理命令(21个命令)
    有关磁盘与文件系统的命令(16个命令)
    linux kernel bisops.h
  • 原文地址:https://www.cnblogs.com/zz1314/p/12456248.html
Copyright © 2011-2022 走看看