提问者:小点点

打印指向的对象


我尝试从对象类中打印值,但无法正确访问指针处存储的信息。下面我定义了一个简单的结构。

编译时,我得到一个错误:

与“operator<<"不匹配(操作数类型为'std::ostream aka std::basic_ostream<char>'和'std::vector<int>')

void PrintNode(Node*Node){cout<<;node->Key<<;endl;}

struct Node
{
    vector<int> key;
    int parent; 
    Node(vector<int> x, int y){ key = x; parent = y; }
    void PrintNode(Node* node) { cout << node->key << endl; }
};

我在函数中调用:

void BFS( vector<int> permutation, int n ) {
    vector<Node*>Pointers;
    queue<Node*> Queue;
    Node* start = new Node(permutation, -1);
    Node::PrintNode( start );
    Pointers.push_back( start );
}

我不明白为什么我不能存储在node对象的中的整数向量。我相信我用key/code>正确地取消了指针引用。


共2个答案

匿名用户

标准库不支持的直接iostreams输出。但是您可以很容易地定义这样的操作。打个圈就行了。

匿名用户

无法处理原始向量,必须将其转换为可以首先处理的数组。您可以使用方法来完成此操作

示例:

void PrintNode(Node* node) { cout << node->key.data() << endl; }