C++ Input 迭代器

C++ Input 迭代器 首页 / C++入门教程 / C++ Input 迭代器
  • Input Iterator是用于从集合读取值的迭代器。
  • 取消引用Input Iterator(输入迭代器)使我们能够从集合中检索值。
  • 它不会更改集合的值。
  • 这是一个单向迭代器。
  • 可以递增,但不能递减。
  • 可用于Input Iterator(输入迭代器)的运算符为增量运算符(++),减量运算符(-),解引用运算符(*),不等于运算符(!=)和等于运算符(==)。 li>
  • Istream 产生Input Iterator(输入迭代器)。
  • 正向迭代器,双向迭代器和随机访问迭代器都是有效的Input Iterator(输入迭代器)。

其中" X"是Input Iterator(输入迭代器)类型,而" a"和" b"是迭代器类型的对象。

Input Iterator(输入迭代器)函数:

  • 相等/不相等运算符:可以使用相等或不相等运算符比较Input Iterator(输入迭代器)。仅当两个迭代器都指向同一位置时,两个迭代器才相等。假设" A"和" B"是两个迭代器:
A ==B;  //相等运算符
A!=B;  //不相符运算符

让我们看一个简单的示例:

#include <iostream>
#include<vector>
#include<iterator>
using namespace std;
int main()
{
    vector<int> v{1,2,3,4,5};
    vector<int>::iterator itr,itr1;
    itr=v.begin();
    itr1=v.begin()+1;
    if(itr==itr1)
    std::cout << "Both the iterators are equal" << std::endl;
    if(itr!=itr1)
    std::cout << "Both the iterators are not equal" << std::endl;
    return 0;
}

输出:

Both the iterators are not equal

在上面的示例中,itr和itr1是两个迭代器。这两个迭代器都是向量类型的。 " itr"是指向向量的第一位置的迭代器对象," itr1"是指向向量的第二位置的迭代器对象。因此,两个迭代器都指向相同的位置,因此条件itr1!= itr返回true并显示" Both the iterators are not equal"。

  • 取消引用迭代器:我们可以使用取消引用运算符(*)取消引用迭代器。假设" A"是一个迭代器:
*A    // 使用 * 取消引用“A”迭代器。

让我们看一个简单的示例:

#include <iostream>
#include<vector>
#include<iterator>
using namespace std;
int main()
{
    vector<int> v{11,22,33,44};
    vector<int>::iterator it;
    it = v.begin();
    cout<<*it;
    return 0;
}

输出:

11

在上面的示例中," it"是指向向量" v"的第一个元素的迭代器对象。取消引用迭代器*它返回迭代器'it'指向的值。

  • 可交换:指向两个不同位置的两个迭代器可以交换。

让我们看一个简单的示例:

#include <iostream>
#include<vector>
#include<iterator>
using namespace std;
int main()
{
    vector<int> v{11,22,33,44};
    vector<int>::iterator it,it1,temp;
    it = v.begin();
    it1 = v.begin()+1;
    temp=it;
    it=it1;
    it1=temp;
    cout<<*it<<" ";
    cout<<*it1;
    return 0;
}

输出:

22 11

在上面的示例中,通过使用第三个迭代器的对象(即 temp )交换了" it"和" it1"迭代器。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

高并发系统设计40问 -〔唐扬〕

NLP实战高手课 -〔王然〕

深入浅出云计算 -〔何恺铎〕

微信小程序全栈开发实战 -〔李艺〕

分布式系统案例课 -〔杨波〕

Vim 实用技巧必知必会 -〔吴咏炜〕

React Hooks 核心原理与实战 -〔王沛〕

讲好故事 -〔涵柏〕

eBPF核心技术与实战 -〔倪朋飞〕

好记忆不如烂笔头。留下您的足迹吧 :)