C++ 陣列::cbegin() 函式



C++ 的std::array::cbegin()函式用於返回一個指向陣列第一個元素的常量迭代器。與 beging() 不同,它只提供對陣列元素的只讀訪問,確保資料不能透過迭代器修改。

語法

以下是 std::array::cbegin() 函式的語法。

const_iterator cbegin() const noexcept;

引數

它不接受任何引數。

返回值

此函式返回一個指向陣列開頭的常量迭代器。

異常

此函式從不丟擲異常。

時間複雜度

常數,即 O(1)

示例 1

在以下示例中,我們將考慮 cbegin() 函式的基本用法。

#include <iostream>
#include <array>
using namespace std;
int main(void) {
   array < int, 5 > arr = {1,2,3,4,5};
   auto it = arr.cbegin();
   while (it < arr.end()) {
      cout << * it << " ";
      ++it;
   }
   cout << endl;
   return 0;
}

輸出

以上程式碼的輸出如下:

1 2 3 4 5

示例 2

考慮以下示例,我們將修改值並觀察輸出。

#include <iostream>
#include <array>
using namespace std;
int main(void) {
   array < int, 5 > arr = {1,2,3,4,5};
   auto it = arr.cbegin();
   * it = 100;
   return 0;
}

輸出

以上程式碼的輸出如下:

main.cpp: In function 'int main()':
main.cpp:8:8: error: assignment of read-only location '* it'
    8 |    *it = 100;
      |    ~~~~^~~~~

示例 3

讓我們看以下示例,我們將對字元陣列使用 cbegin() 函式。

#include <iostream>
#include <array>
using namespace std;
int main() {
   array < char, 4 > MyArray {'a','b','c','d'};
   array < char, 4 > ::const_iterator cit;
   for (cit = MyArray.cbegin(); cit != MyArray.cend(); ++cit)
      cout << * cit << " ";
   return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出:

a b c d
array.htm
廣告