将初始化的矢量作为引用传递时出错

Error when passing a initialized vector as a reference

本文关键字:引用 出错 初始化      更新时间:2023-10-16

我有一个函数:

std::string GraphList::_dfs(int src, std::vector<int>& visited)

我这样称呼它:

std::vector<bool> visited(NUM_V, false);
return _dfs(src, visited);

我得到以下错误:

a reference of type "std::vector<int, std::allocator<int>> &" (not const-qualified) cannot be initialized with a value of type "std::vector<bool, std::allocator<bool>>"

如果我传递一个未初始化的向量,它工作得很好,但为什么编译器在我传递初始化的向量时会抱怨呢?

您将一个vector<bool>作为参数传递给一个函数,该函数期望对应的参数为vector<int>,该参数属于不同类型,两种类型之间不可能进行隐式转换,因此会出现错误。