#include <vector>
using std::vector;
int main(void)
{
vector<int> gr[10];
function(gr);
}
Run Code Online (Sandbox Code Playgroud)
我应该如何定义通过引用而不是通过值调用的函数?
对于通过引用:
void foo( vector<int> const (&v)[10] )
Run Code Online (Sandbox Code Playgroud)
或者 sansconst如果foo要修改实际参数。
为了避免声明的由内而外的原始 C 语法的问题,您可以这样做:
template< size_t n, class Item >
using raw_array_of_ = Item[n];
void bar( raw_array_of_<10, vector<int>> const& v );
Run Code Online (Sandbox Code Playgroud)
但是,如果您std::array在main函数中使用过,则可以这样做:
void better( std::array<vector<int>, 10> const& v );
Run Code Online (Sandbox Code Playgroud)
但是这个函数不接受原始数组作为参数,只接受一个std::array.
auto function(vector<int> (&gr)[10]) { ... }
Run Code Online (Sandbox Code Playgroud)
std::vector<int> 通过引用传递数组应该是正确的语法。
| 归档时间: |
|
| 查看次数: |
4457 次 |
| 最近记录: |