小编mid*_*101的帖子

双指针的问题

当我尝试使用下面第15行中的指针变量*temp创建一个新的Node对象时,我遇到了分段错误.我仍然是c ++的新手,以及双指针的工作方式,特别是与&结合使用时.谢谢你的帮助.

void bst::insert(int n) {
    Node **temp;
    Node *r, *parent;
    // Tree is empty
    if (root == NULL) {
        root = new Node;
        root->parent = NULL;
        root->value = n;
        root->left = NULL;
        root->right = NULL;
        root->isBlack = true;
    } else {
        r = root;
        // Create a node with the given value, n
        (*temp) = new Node;
        (*temp)->value = n;
        (*temp)->left = NULL;
        (*temp)->right = NULL;
        (*temp)->isBlack = false;
Run Code Online (Sandbox Code Playgroud)

c++ pointers segmentation-fault

3
推荐指数
1
解决办法
200
查看次数

Java中的未知编译器错误,我认为这是范围问题

我正在实现广度优先和深度优先搜索类,我在编译时遇到错误,我无法理解.错误是:

symbol:variable aList
location:class java.lang.Object for(graphNode node:map.get(i).aList){

aList变量是一个TreeSet,存储在每个节点中,该节点包含相应图形中节点所连接的节点.我在上面的main方法中使用完全相同的语法,它不会给出任何错误.此外,当我在遍历方法中打印出地图中的所有节点时,它会打印整数键,而不是它应该具有的graphNode值.我现在很困惑.谢谢你的帮助.

import java.util.*;
import java.io.*;


public class HW1 {

public static void main (String[] args) throws Exception {
    Scanner sc = new Scanner(new File(args[0]));
    sc.useDelimiter("(\\s)"); // divide up by whitespcae

    TreeMap<Integer, graphNode> map = new TreeMap<Integer, graphNode>();
    int totalNodes = Integer.parseInt(sc.next());
    int totalEdges = Integer.parseInt(sc.next());

    // Fill up the map with nodes
    for(int i = 1; i <= totalNodes ; i++) {
        map.put(i, new graphNode(i, null, 10000));

    }

   // Add all the edges …
Run Code Online (Sandbox Code Playgroud)

java scope compiler-errors

2
推荐指数
1
解决办法
158
查看次数

重载<<运算符不起作用; 仍然打印对象地址

我正在尝试重载流操作符,<<但它仍然只是打印对象地址而不是像重载函数定义中的对象信息.这是我的代码,花了很长时间尝试我在网上找到的每个例子,但没有任何工作.请帮助减轻我的一些压力!谢谢.

Interval.h:

#ifndef INTERVAL_H
#define INTERVAL_H
#include <string>
#include <iostream>
#include <assert.h>

using namespace std;

class Interval {
    public:
        long start;
        long end;

        // Constructor
        Interval(long, long);

        // Deconstructor
        // Virtual to make sure that it calls the correct destructor
        virtual ~Interval();

        bool operator==(const Interval &other) const;
        bool operator!=(const Interval &other) const;
        bool operator<(const Interval &other) const;
        bool operator<=(const Interval &other) const;
        bool operator>(const Interval &other) const;
        bool operator>=(const Interval &other) const;
        friend ostream& operator<<(ostream& os, const Interval …
Run Code Online (Sandbox Code Playgroud)

c++ iostream operator-overloading

1
推荐指数
1
解决办法
933
查看次数