5.29.2011

C++: Convert array to vector

C++: 配列からvectorへの変換

Top Coder のプラグインで使われているテクニックの応用。
空の配列には対応していない。

   1: #include <vector>
   2: #define VECTOR(a) VECTOR_((a), sizeof(a) / sizeof(a[0]))
   3: template <typename T>
   4: std::vector<T> VECTOR_(T *array, std::size_t size) {
   5:   return std::vector<T>(array, array + size);
   6: }
・使用例
   1: int x[] = {1, 2, 3, 4, 5};
   2: std::string y[] = {"aa", "bb", "cc"};
   3:  
   4: std::vector<int> vx = VECTOR(x);
   5: std::vector<std::string> vy = VECTOR(y);
   6:  
   7: std::cout << vx[2] << vy[2] << std::endl;  // "3cc"

0 件のコメント:

コメントを投稿