C++迭代器::begin()函式



C++ iterator::begin() 函式返回一個指向容器第一個元素的指標。這個指標是雙向的,因為它可以指向容器的任何方向。此函式可在std名稱空間的map關聯容器類模板中使用,其中鍵值對用於儲存元素。

迭代器充當連線演算法與STL容器的橋樑,並允許修改容器內的資料。為了獲得預期的結果,您可以使用它們來迭代容器,訪問和賦值值,並在其上執行不同的運算子。

語法

以下是C++ iterator::begin()函式的語法:

auto begin(Container& cont)  `
   -> decltype(cont.begin());

auto begin(const Container& cont)   `
   -> decltype(cont.begin());

Ty *begin(Ty (& array)[Size]);

引數

  • cont − 它表示返回cont.begin()的容器。
  • array − 型別為Ty的物件陣列。

示例1

讓我們考慮以下示例,我們將使用begin()函式並檢索輸出。

#include<iostream>
#include<iterator>
#include<vector>
using namespace std;
int main() {
   vector<int> array = {2,3,4,12,14};
   vector<int>::iterator ptr;
   cout << "The Elements are : ";
   for (ptr = array.begin(); ptr < array.end(); ptr++)
      cout << *ptr << " ";
   return 0;
}

輸出

當我們編譯並執行上述程式時,將產生以下結果:

The Elements are : 2 3 4 12 14 

示例2

考慮以下示例,我們將使用帶有begin()函式的map並檢索輸出。

#include <iostream>
#include <iterator>
#include <map>
using namespace std;
int main() {
   map<string,int> Student = {
      {"Amar", 20},
      {"Akbar", 21},
      { "Antony" ,32},
   };
   map<string,int>::const_iterator iterator;
   iterator = Student.begin();
   cout << "Name"<<"\t" <<"Age" << "\n";
   while (iterator != Student.end() ) {
      cout << iterator->first <<"\t"  << iterator->second << "\n";
      ++iterator;
   }
   cout << endl;
   return 0;
}

輸出

讓我們編譯並執行上述程式,將產生以下結果:

Name	Age
Akbar	21
Amar	20
Antony	32

示例3

讓我們看看另一種情況,我們將使用begin()函式並檢索輸出。

#include <iostream>
#include <vector>
int main () {
   int foo[] = {1,2,3,4,5};
   std::vector<int> bar;
   for (auto it = std::begin(foo); it!=std::end(foo); ++it)
      bar.push_back(*it);
   std::cout << "bar contains:";
   for (auto it = std::begin(bar); it!=std::end(bar); ++it)
      std::cout << ' ' << *it;
   std::cout << '\n';
   return 0;
}

輸出

執行上述程式後,將產生以下結果:

bar contains: 1 2 3 4 5
廣告