gpt4 book ai didi

c++ - 使用迭代器访问元素

转载 作者:行者123 更新时间:2023-11-30 03:40:43 26 4
gpt4 key购买 nike

考虑这段代码:

#include <vector>
#include <iostream>
class num{
int a;
int b;

public:
num(int a_, int b_): a(a_), b(b_){}
int Geta(){return a;}
int Getb(){return b;}

};

int main(){
num a(2, 5);
num b(32, 654);
std::vector<num> nums;
nums.push_back(a);
nums.push_back(b);
std::vector<num>::iterator iter = nums.begin();
std::cout << iter->Geta()<< " " <<(*iter).Getb() << std::endl;
return 0;
}

这行得通,但我不知道使用迭代器iter->(*i​​ter) 访问数组元素哪种方式更好。

我认为这个例子是两者都有效的特例。你能给我一个可以看出差异(以及为什么)的代码吗?

最佳答案

  1. -> 用于通过指向对象的指针访问对象成员变量和方法。

  2. . 用于通过对象实例访问对象成员变量和方法。

但容器迭代器喜欢指向某些数据结构的指针,在我看来 (1.) 使用起来更方便。

如果你有指针 vector ,你需要注意你有指向指针( vector 元素)的指针(迭代器)并使用此语法 (*i​​ter)->Geta();

关于c++ - 使用迭代器访问元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37842289/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com