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 件のコメント:
コメントを投稿