-2

p 是一个整数列表。

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

但是 p 有“表达式必须具有整数或无范围枚举类型”错误。

为什么?

4

1 回答 1

2

list不超载operator(int),这是你能说的要求p(0)

如果您的意思是 p[0],list也不会超载operator[int],这仅适用于vector, map(或实际上operator[keyType])等。这是因为lists 没有随机访问权限(意味着您无法获取任何元素,除非您循环访问)

但是,您可以执行以下操作:

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

或者

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

它访问第一个元素。

于 2013-02-25T08:57:27.533 回答