以下のコードでは、関数 (foo) の引数 ( std::vector) のサイズは、関数を一般的なものにするために任意のサイズにすることができます。ただし、コンテナーのサイズがわかっている場合があるため、 std::array を使用できます。問題は、 を に変換するstd::arrayことstd::vectorです。この問題を解決する最善の方法は何ですか? std::vectorこの場合、常に使用する方が良いですか?
#include <iostream>
#include <array>
#include <vector>
using namespace std;
// generic function: size of the container can be anything
void foo (vector<int>& vec)
{
// do something
}
int main()
{
array<int,3> arr; // size is known. why use std::vector?
foo (arr); // cannot convert std::array to std::vector
return 0;
}