p是整数列表。
std::list<int> p;
if ( 2 % p(0) == 0 );
但是p具有“表达式必须具有整数或未整合的枚举类型”错误。
为什么?
答案 0 :(得分:2)
list
不会超载operator(int)
,这是您要求p(0)
的要求。
如果您的意思是p[0]
,list
也不会超载operator[int]
,这仅适用于vector
,map
(或实际operator[keyType]
这是因为list
没有随机访问(意味着你不能获得任何元素,除非你循环)
但你可以这样做:
if (2 % p.front() == 0)
或
if (2 % *p.begin() == 0)
访问第一个元素。