[英]Vector template argument invalid
我有以下代碼,
typedef struct node
{
int data;
node * left;
node * right;
}node;
#include <vector>
std::vector<node*> findValue(node * node, int value, std::vector<node*> parents) {...}
但是我遇到了編譯錯誤:
錯誤:模板參數1無效
std::vector<node*> findValue(node * node, int value, std::vector<node*> parents) {
^
如何正確聲明節點指針向量的函數參數?
在
std::vector<node*> findValue(node * node, int value, std::vector<node*> parents)
node * node
重新定義標識符node
為一個變量。 當編譯器解析std::vector<node*> parents
,node不再是可以在模板擴展中使用的類型。
重用名稱時要小心。
std::vector<node*> findValue(node * notnode, int value, std::vector<node*> parents)
notnode
是解決此問題的示例。 強烈建議使用更具描述性的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.