pは整数のリストです。
std::list<int> p;
if ( 2 % p(0) == 0 );
ただし、pには「式には整数型またはスコープなしの列挙型が必要」というエラーがあります。
なんで?
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)
最初の要素にアクセスします。