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
广告
© . All rights reserved.