特に配列からベクトルを構築する場合、ポインタとイテレータについて明確ではありません。
vectorについての説明から、それは言う
// the iterator constructor can also be used to construct from arrays:
int myints[] = {16,2,77,29};
std::vector<int> fifth (myints, myints + sizeof(myints) / sizeof(int) );
プライマリでは、次のとおりです。
#include <vector>
int arr[ARR_LEN] = { /* Array elements */ };
std::vector<int> vecInt(arr, arr + ARR_LEN);
次のコンストラクタを使用していますか?
template <class InputIterator>
vector (InputIterator first, InputIterator last,
const allocator_type& alloc = allocator_type());
もしそうなら、ここでは、(配列の) ポインタはランダムアクセス反復子に扱われ、入力反復子として扱われますか? コンパイラはこれをどのように行いますか? 他のコンテナからのイテレータを考慮すると、このイテレータの型は何ですか? たとえば、"array[int]"::iterator?
int arr[N] = {};
for (int i= 0; i<N; i++) {}
上記の代わりに、次のようなことができますか?
for (ItorType it=arr; it!=arr+N; ++it) { ... }