Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
p 是一个整数列表。
std::list<int> p; if ( 2 % p(0) == 0 );
但是 p 有“表达式必须具有整数或无范围枚举类型”错误。
为什么?
list不超载operator(int),这是你能说的要求p(0)。
list
operator(int)
p(0)
如果您的意思是 p[0],list也不会超载operator[int],这仅适用于vector, map(或实际上operator[keyType])等。这是因为lists 没有随机访问权限(意味着您无法获取任何元素,除非您循环访问)
p[0]
operator[int]
vector
map
operator[keyType]
但是,您可以执行以下操作:
if (2 % p.front() == 0)
或者
if (2 % *p.begin() == 0)
它访问第一个元素。