簡體   English   中英

矢量模板參數無效

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM