列出模数错误

List modulus error

本文关键字:错误      更新时间:2023-10-16

p是一个整数列表。

std::list<int> p;
    if ( 2 % p(0) == 0 );

但p有"表达式必须具有整型或非范围枚举类型"错误。

为什么?

list不会重载operator(int),这是您能够说出p(0)的要求。

如果你的意思是p[0]list也不会过载operator[int],这只适用于vectormap(或实际上是operator[keyType])等。这是因为list没有随机访问(意味着你不能获得任何元素,除非你循环通过)

然而,你可以做一些类似的事情:

if (2 % p.front() == 0)

if (2 % *p.begin() == 0)

其访问第一元件。