21xrx.com
2024-06-03 01:34:40 Monday
登录
文章检索 我的文章 写文章
C++迭代器简介及基本使用方法
2023-07-05 00:27:35 深夜i     --     --
C++ 迭代器 简介 基本使用方法 STLVecter

C++迭代器是一种用于遍历容器中元素的工具,是STL(Standard Template Library)中的重要组成部分。通过使用迭代器,可以在不了解容器内部细节的情况下,对容器中的元素进行遍历和操作。

在C++中,迭代器是一种“指向容器元素”的类型,可以看作是容器中一个元素的代表。在使用迭代器时,需要注意以下几点:

1. 迭代器类型不同,对应的容器类型也不同。例如,vector容器对应的迭代器类型是vector ::iterator,而map容器对应的迭代器类型是map ::iterator。

2. 通过迭代器可以遍历容器中的元素,但不能改变元素值。若需要修改元素值,需要使用容器中提供的特定函数,例如vector容器的at()和vector::[]。

3. 迭代器有begin()和end()函数,用于获取遍历的起始和终止位置。begin()函数返回的是指向容器头部的迭代器,end()函数返回的是指向容器尾部的迭代器的下一个位置。

下面介绍一下迭代器的基本使用方法:

1. 使用for循环遍历容器中的元素


#include <iostream>

#include <vector>

using namespace std;

int main()

{

  vector<int> vec;

  vec.push_back(1);

  vec.push_back(2);

  vec.push_back(3);

  for (vector<int>::iterator it = vec.begin(); it != vec.end(); ++it)

    cout << ' ' << *it;

  return 0;

}

2. 使用迭代器修改容器中的元素值


#include <iostream>

#include <vector>

using namespace std;

int main()

{

  vector<int> vec;

  vec.push_back(1);

  vec.push_back(2);

  vec.push_back(3);

  for (vector<int>::iterator it = vec.begin(); it != vec.end(); ++it)

    *it = *it + 10;

  for (vector<int>::iterator it = vec.begin(); it != vec.end(); ++it)

    cout << ' ' << *it;

  return 0;

}

3. 使用迭代器删除容器中的元素


#include <iostream>

#include <vector>

using namespace std;

int main()

{

  vector<int> vec;

  vec.push_back(1);

  vec.push_back(2);

  vec.push_back(3);

  vec.erase(vec.begin() + 1);

  for (vector<int>::iterator it = vec.begin(); it != vec.end(); ++it)

    cout << ' ' << *it;

  return 0;

}

4. 使用迭代器插入元素到容器中


#include <iostream>

#include <vector>

using namespace std;

int main()

{

  vector<int> vec;

  vec.push_back(1);

  vec.push_back(2);

  vec.push_back(3);

  vec.insert(vec.begin() + 1, 4);

  for (vector<int>::iterator it = vec.begin(); it != vec.end(); ++it)

    cout << ' ' << *it;

  return 0;

}

综上所述,迭代器是C++中非常方便的容器遍历工具,掌握其基础使用方法能够为我们在开发中提供很大的帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复