在下面的代码中,函数 (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;
}