2012-03-22 18 views
1

構文が正しく表示されません。私はこれを持っていると言います...構造体のマルチセットを反復する

forループ内の各要素のint barとstring testにアクセスするにはどうすればよいですか?

ありがとうございます!

答えて

2

イテレータは、ポインタの安全なC++抽象であるというニーモニックのルールがあります。

だから基本的にあなたが逆参照構文によって要素にアクセス:C++ 11では

(*it).bar = 0; 
it->test = ""; 
2
for (it = fooset.begin(); it != fooset.end(); it++) 
{ 
     foo const & f = *it; //const is needed if it is C++11 
     //use f, e.g 
     std:: cout << f.bar <<", " << f.test << std::endl; 
} 

、あなたの代わりにこれを行うことができます:

for(foo const & f : fooset) 
{ 
     //use f, e.g 
     std:: cout << f.bar <<", " << f.test << std::endl; 
} 
+1

+1をから構文については及ん言及のためにC++ 11。どんな場合でも – ulidtko

+0

の 'const'が必要です。 –

+0

@ n.m .: C++ 03ではこれを行う必要はありません。 – Nawaz

関連する問題