在 C++ 中查找数组长度

游客2024-06-20 04:18:52

介绍

在本文中,我们将学习 在 C++ 中找到数组长度的各种方法。数组的长度是指相应数组中存在的元素总数。例如,请看下面的数组:

int array1[]={0,1,2,3,4}

此处数组的大小或长度等于其中元素的总数 - 即 5

在 C++ 中查找数组长度的方法

有几种方法可以确定 C++ 语言中数组的长度。他们是:

  1. 计算每个元素

  2. begin()end() 功能

  3. sizeof() 功能

  4. size() STL中的函数

  5. 使用指针

  6. 现在,让我们通过示例和详细讨论每种方法。

    1. 计算每个元素

    遍历给定数组并同时计算我们遍历的元素总数可以得到数组的长度。但是,如果我们不知道数组的长度,我们就不能使用 for 循环遍历数组,因为 for 循环需要一个终止编号。这个问题可以通过使用简单的 for-each 循环来解决。让我们看一下下面的代码。

    #include
    #include<数组> 使用命名空间
  7. std
  8. ;int
  9. main{
  10.  
  11. int
  12. c
  13. ;
  14.  
  15. int
  16. arr
  17. []={1,2,3,4,5,6,7,8,9,0};
  18.   cout
  19. <<“数组为:”;
  20.  
  21. for自动
  22. i
  23. arr
  24.  
  25. {
  26.   cout
  27. <<
  28. i
  29. <<;
  30. C
  31. ++;
  32.  
  33. }
  34.   cout
  35. <<“n给定数组的长度为:”<<
  36. c
  37. ;
  38.    
  39. 返回
  40. 0;}

    如果我们运行此代码,我们将得到以下输出:

    OutputThe array is:1234567890
  41. 给定数组的长度为
  42. 10

    在这段代码中,我们使用 for-each 循环以 i 作为迭代器遍历数组arr。当循环遍历时,c 会递增。当循环终止时,c 变量包含循环执行的次数,给出数组的总长度。

    2.使用 begin() 和 end()

    我们还可以使用标准库 begin()end() 函数来计算数组的长度。这两个函数分别返回指向相应数组 的开始结束的迭代器。看看给定的代码:

    #include
    #include<数组> 使用命名空间
  43. std
  44. ;int
  45. main{
  46.    
  47. 给定数组
  48.  
  49. int
  50. arr
  51. []
  52. =
  53. {
  54. 11
  55. 22
  56. 33
  57. 44
  58. };
  59.     cout
  60. <<“数组的长度是:”<<end
  61. arr
  62. -begin
  63. arr
  64. ;
  65. 长度
  66.    
  67. 返回
  68. 0;}

    此代码的输出为:

    Output:4

    在这里,我们可以看到两个函数 end() 的返回值之间的差异,并 begin() 给出给定数组 arr的大小或长度。在本例中,差值为 4,即 的长度 arr

    3. 使用 sizeof() 函数在 C++ 中查找数组长度

    sizeof() C++ 中的运算符返回传递的变量或数据的大小(以字节为单位),以及存储数组所需的总字节数。因此,如果我们将数组的大小除以相同的每个元素获取的大小,我们可以得到数组中存在的元素总数。

    让我们来看看它是如何工作的。

    #include
    #include<数组> 使用命名空间
  69. std
  70. ;int
  71. main{
  72.  
  73. 给定数组
  74.  
  75. int
  76.  arr
  77. []
  78. =
  79. {10
  80. 20
  81. 30};
  82.    
  83. int
  84. al
  85. =
  86. sizeof
  87. arr
  88. /sizeof
  89. arr
  90. [0];
  91. 长度计算
  92. cout
  93. <<
  94. “数组的长度是:”<<
  95. al
  96. ;
  97.    
  98. 返回
  99. 0;}

    此代码的输出为:

    OutputThe length of the array is:3

    正如我们所看到的,我们得到了我们想要的长度作为输出。

    4.在 STL 中使用 size() 函数

    标准库中定义了一个 size() 函数,它返回给定容器中的元素数(在我们的例子中为数组)。我们可以使用这个函数按以下方式返回长度:

    #include
    #include<数组> 使用命名空间
  100. std
  101. ;int
  102. main{
  103.  
  104. 给定数组
  105. array
  106. <int,5>
  107. arr
  108. {
  109. 1
  110. 2
  111. 3
  112. 4
  113. 5
  114. };
  115.  
  116. 使用 STL 的 size() 函数
  117.   cout
  118. <<“n给定数组的长度为:”<<
  119. arr
  120. 大小;
  121.  
  122. 返回
  123. 0;}

    在执行时,上述代码将返回以下输出:

    OutputThe length of the given Array is:5

    5. 使用指针在 C++ 中查找数组长度

    我们还可以使用 指针找到给定数组的长度。指针是一个变量,用于存储对象的内存地址,而不是存储对象本身。让我们看看如何使用指针来获取数组的长度。

    #include
    #include<数组> 使用命名空间
  124. std
  125. ;int
  126. main{
  127.  
  128. 给定数组
  129.  
  130. int
  131. arr
  132. [6]
  133. =
  134. {5,4,3,2,1,0};
  135.    
  136. int
  137. len
  138. =
  139. *&
  140. arr
  141. +
  142. 1
  143. -
  144. arr
  145. ;
  146.  
  147. *(&arr + 1) 是下一个内存位置的地址
  148.  
  149. 紧跟在数组的最后一个元素之后
  150.     cout
  151. <<
  152. “数组的长度是:”
  153. <<
  154. len
  155. ;
  156.    
  157. 返回
  158. 0;}

    此代码的输出为:

    OutputThe length of the array is:6

    该表达式 *(arr+1) 为我们提供了数组最后一个元素之后的内存空间地址。因此,它与数组的起始位置或基址 (arr) 之间的差值为我们提供了给定数组中元素的总数。

    结论

    在本教程中,我们讨论了在 C++ 中查找数组长度的各种方法。尽管所有方法都以一种或另一种方式返回长度,但我们更喜欢使用 for-each 循环,这不仅是因为代码的可读性,还因为它的跨平台可靠性。

    引用

    • 如何找到数组的长度?- 堆栈溢出问题,

    • C++ 中的每个循环 - JournalDev 帖子。

    介绍

    在本文中,我们将学习 在 C++ 中找到数组长度的各种方法。数组的长度是指相应数组中存在的元素总数。例如,请看下面的数组:

    int array1[]={0,1,2,3,4}

    此处数组的大小或长度等于其中元素的总数 - 即 5

    在 C++ 中查找数组长度的方法

    有几种方法可以确定 C++ 语言中数组的长度。他们是:

    1. 计算每个元素

    2. begin()end() 功能

    3. sizeof() 功能

    4. size() STL中的函数

    5. 使用指针

    6. 现在,让我们通过示例和详细讨论每种方法。

      1. 计算每个元素

      遍历给定数组并同时计算我们遍历的元素总数可以得到数组的长度。但是,如果我们不知道数组的长度,我们就不能使用 for 循环遍历数组,因为 for 循环需要一个终止编号。这个问题可以通过使用简单的 for-each 循环来解决。让我们看一下下面的代码。

      #include
      #include<数组> 使用命名空间
    7. std
    8. ;int
    9. main{
    10.  
    11. int
    12. c
    13. ;
    14.  
    15. int
    16. arr
    17. []={1,2,3,4,5,6,7,8,9,0};
    18.   cout
    19. <<“数组为:”;
    20.  
    21. for自动
    22. i
    23. arr
    24.  
    25. {
    26.   cout
    27. <<
    28. i
    29. <<;
    30. C
    31. ++;
    32.  
    33. }
    34.   cout
    35. <<“n给定数组的长度为:”<<
    36. c
    37. ;
    38.    
    39. 返回
    40. 0;}

      如果我们运行此代码,我们将得到以下输出:

      OutputThe array is:1234567890
    41. 给定数组的长度为
    42. 10

      在这段代码中,我们使用 for-each 循环以 i 作为迭代器遍历数组arr。当循环遍历时,c 会递增。当循环终止时,c 变量包含循环执行的次数,给出数组的总长度。

      2.使用 begin() 和 end()

      我们还可以使用标准库 begin()end() 函数来计算数组的长度。这两个函数分别返回指向相应数组 的开始结束的迭代器。看看给定的代码:

      #include
      #include<数组> 使用命名空间
    43. std
    44. ;int
    45. main{
    46.    
    47. 给定数组
    48.  
    49. int
    50. arr
    51. []
    52. =
    53. {
    54. 11
    55. 22
    56. 33
    57. 44
    58. };
    59.     cout
    60. <<“数组的长度是:”<<end
    61. arr
    62. -begin
    63. arr
    64. ;
    65. 长度
    66.    
    67. 返回
    68. 0;}

      此代码的输出为:

      Output:4

      在这里,我们可以看到两个函数 end() 的返回值之间的差异,并 begin() 给出给定数组 arr的大小或长度。在本例中,差值为 4,即 的长度 arr

      3. 使用 sizeof() 函数在 C++ 中查找数组长度

      sizeof() C++ 中的运算符返回传递的变量或数据的大小(以字节为单位),以及存储数组所需的总字节数。因此,如果我们将数组的大小除以相同的每个元素获取的大小,我们可以得到数组中存在的元素总数。

      让我们来看看它是如何工作的。

      #include
      #include<数组> 使用命名空间
    69. std
    70. ;int
    71. main{
    72.  
    73. 给定数组
    74.  
    75. int
    76.  arr
    77. []
    78. =
    79. {10
    80. 20
    81. 30};
    82.    
    83. int
    84. al
    85. =
    86. sizeof
    87. arr
    88. /sizeof
    89. arr
    90. [0];
    91. 长度计算
    92. cout
    93. <<
    94. “数组的长度是:”<<
    95. al
    96. ;
    97.    
    98. 返回
    99. 0;}

      此代码的输出为:

      OutputThe length of the array is:3

      正如我们所看到的,我们得到了我们想要的长度作为输出。

      4.在 STL 中使用 size() 函数

      标准库中定义了一个 size() 函数,它返回给定容器中的元素数(在我们的例子中为数组)。我们可以使用这个函数按以下方式返回长度:

      #include
      #include<数组> 使用命名空间
    100. std
    101. ;int
    102. main{
    103.  
    104. 给定数组
    105. array
    106. <int,5>
    107. arr
    108. {
    109. 1
    110. 2
    111. 3
    112. 4
    113. 5
    114. };
    115.  
    116. 使用 STL 的 size() 函数
    117.   cout
    118. <<“n给定数组的长度为:”<<
    119. arr
    120. 大小;
    121.  
    122. 返回
    123. 0;}

      在执行时,上述代码将返回以下输出:

      OutputThe length of the given Array is:5

      5. 使用指针在 C++ 中查找数组长度

      我们还可以使用 指针找到给定数组的长度。指针是一个变量,用于存储对象的内存地址,而不是存储对象本身。让我们看看如何使用指针来获取数组的长度。

      #include
      #include<数组> 使用命名空间
    124. std
    125. ;int
    126. main{
    127.  
    128. 给定数组
    129.  
    130. int
    131. arr
    132. [6]
    133. =
    134. {5,4,3,2,1,0};
    135.    
    136. int
    137. len
    138. =
    139. *&
    140. arr
    141. +
    142. 1
    143. -
    144. arr
    145. ;
    146.  
    147. *(&arr + 1) 是下一个内存位置的地址
    148.  
    149. 紧跟在数组的最后一个元素之后
    150.     cout
    151. <<
    152. “数组的长度是:”
    153. <<
    154. len
    155. ;
    156.    
    157. 返回
    158. 0;}

      此代码的输出为:

      OutputThe length of the array is:6

      该表达式 *(arr+1) 为我们提供了数组最后一个元素之后的内存空间地址。因此,它与数组的起始位置或基址 (arr) 之间的差值为我们提供了给定数组中元素的总数。

      结论

      在本教程中,我们讨论了在 C++ 中查找数组长度的各种方法。尽管所有方法都以一种或另一种方式返回长度,但我们更喜欢使用 for-each 循环,这不仅是因为代码的可读性,还因为它的跨平台可靠性。

      引用

      • 如何找到数组的长度?- 堆栈溢出问题,

      • C++ 中的每个循环 - JournalDev 帖子。