列表模数误差

时间:2013-02-25 02:22:45

标签: c++ list stl modulus

p是整数列表。

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

但是p具有“表达式必须具有整数或未整合的枚举类型”错误。

为什么?

1 个答案:

答案 0 :(得分:2)

list不会超载operator(int),这是您要求p(0)的要求。

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

但你可以这样做:

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

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

访问第一个元素。