Wednesday, 15 July 2015

stl - Iterating over all pairs of elements in std-containers (C++) -


एसडीडी कंटेनर जैसे std :: list तत्वों के सभी जोड़ों पर पुनरावृत्त करने का सबसे अच्छा तरीका क्या है , std :: सेट , std :: vector , आदि?

असल में इस के बराबर करने के लिए, लेकिन iterators के साथ:

  के लिए (int i = 0; i & lt; ए्सize () - 1; i ++) के लिए (int j = i + 1; j & lt; एसिज़ (); j ++) cout & lt; & LT; ए [i] & lt; & lt; ए [जे] & lt; & lt; endl;  

सबसे आसान तरीका सिर्फ शब्द को शाब्दिक रूप से दोबारा लिख ​​रहा है:

  के लिए (ऑटो i = foo.begin (); i! = Foo.end (); ++ i) {for (ऑटो जे = i; ++ j! = Foo.end (); / ** / ) {Std :: cout & lt; & lt; * I & lt; & lt; * जे एंड एलटी; & lt; std :: endl; }}  

C ++ 98/03 के लिए const_iterator के साथ स्वतः बदलें। या इसे अपने फ़ंक्शन में डाल दिया है:

  टेम्पलेट & lt; typename it & gt; Void for_each_pair (यह शुरू, यह अंत) {for (यह i = start; i! = End; ++ i) {for (यह j = i; ++ j! = End; / ** /) {std :: Cout & lt; & lt; * I & lt; & lt; * जे एंड एलटी; & lt; std :: endl; }}}  
पर क्लिक करें

No comments:

Post a Comment