C ++无法访问由向量的迭代器返回的类中的公共属性

问题描述

所以我有一个叫做order的类,当用户下订单时,我会调用该类。 我还有另一个叫做订单簿的类,它是订单的向量。

我想尝试在收到新订单时遍历订单簿以检查是否存在重复,但是现在我被卡住遍历矢量。

我正在使用迭代器,并将新订单的符号与订单簿符号中的每个订单进行比较。

我读到迭代器就像一个指针,它将返回我的向量定单的内存位置,并且*它会给我定单本身,如果在其上添加.symbol,它应该给我定单的symbol属性,但现在甚至无法编译。

尝试时出现此错误:

use Illuminate\Support\Facades\Hash;

public static function checkAttempt($credentials):bool
{
    $user = User:: where('login','like',$credentials['login'])->firstorFail();
    $validPassword = Hash::check($credentials['password'],$user['password']);
    return $user && $validPassword && $user['user_active'];
}

下面是代码,我删除了一堆与问题无关的东西。

../src/oncemore.cpp:123:40: error: 'std::vector<order>::iterator' {aka 'class __gnu_cxx::__normal_iterator<order*,std::vector<order> >'} has no member named 'symbol'
  123 |    if (_clientOrder.symbol.compare(*it.symbol)==0) {}
      |                                        ^~~~~~

解决方法

写作时

*it.symbol

由于.的运算符优先级高于*,因此表达式变为:

*(it.symbol)

,该错误表明迭代器没有名为symbol的成员,这是事实。


您可以通过以下方法强制设置优先级:

(*it).symbol

甚至更好,通过使用适当的运算符:

it->symbol

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...