6.04.2011

C++: Printing all elements in a vector using operator

C++: vector の全要素の出力

「<<」演算子のオーバーロードによって vector の出力を簡単にできるようにする。

   1: #include <iostream>
   2: #include <vector>
   3:  
   4: template <typename T>
   5: std::ostream & operator<<(std::ostream & stream, std::vector<T> & v) {
   6:   stream << "[";
   7:   for(typeof(v.begin()) i = v.begin(); i != v.end(); ++i) {
   8:     if (i != v.begin()) { stream << ", "; }
   9:     stream << *i;
  10:   }
  11:   stream << "]";
  12:   return stream;
  13: }
  14:  
  15: int main() {
  16:   std::vector<int> iv;
  17:   std::vector<char> cv;
  18:  
  19:   for (int i = 0; i < 5; ++i) {
  20:     iv.push_back(i);
  21:     cv.push_back('A' + i);
  22:   }
  23:  
  24:   std::cout << iv << std::endl;
  25:   std::cout << cv << std::endl;
  26:  
  27:   return 0;
  28: }

・出力結果

   1: [0, 1, 2, 3, 4]
   2: [A, B, C, D, E]

0 件のコメント:

コメントを投稿