[cpp] std::vectorを配列の引数に渡す
配列を引数にとる関数にstd::vectorを渡すときは
&v[0]
&v.front()
のどちらかを使えばよい。サンプルコード
#include <iostream> #include <vector> void Show(const int* array, int size) { for(int i = 0; i < size; ++i) { std::cout << array[i] << ' '; } std::cout << std::endl; } int main() { std::vector<int> v(10); for(size_t i = 0, size = v.size(); i < size; ++i) { v[i] = i * i; } Show(&v.front(), v.size()); }
追記 5/24
id:bolerosさん、id:rhysdさんからコメントいただきました。ありがとうございます。
C++03以降では
v.data()
を使って
Show(v.data(), v.size());
とすればいいようです。