Форум программистов, компьютерный форум CyberForum.ru

с++ дерево классы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Масивы http://www.cyberforum.ru/cpp-beginners/thread258945.html
В квадратном массиве заданы целые числа. Определить количество элементов главной диагонали. только пожалуйста сделайте так как для новичков с базовыми цыклами и масивами
C++ Седловая точка Элемент матрицы назовем седловой точки, если он является наименьшим в своей строке и одновременно крупнейшим в своем столбце или, наоборот, является крупнейшим в своей строке и наименьшим в своем столбце. Для заданной целой матрицы размером 10 × 15 напечатайте индексы всех ее седловых точек. С++ http://www.cyberforum.ru/cpp-beginners/thread258942.html
Как подключить Glut C++
Помогите пожалуйста подключить Glut хотя бы к одному из компиляторов Dev c++ (автообновление не работет почему не знаю) Visual studio2010 и borland6 Не дублируйте темы - это нарушает правила форума.
Определить количество элементов главной диагонали массива C++
В квадратном массиве заданы целые числа. Определить количество элементов главной диагонали. только пожалуйста сделайте так как для новичков с базовыми цыклами и масивами
C++ Enter The Matrix http://www.cyberforum.ru/cpp-beginners/thread258926.html
Помогите сделать два задания в одной програме: 1.В матрице mxn типа double определить номер столбца в котором находится минимальный элемент. (m и n вводятся с клавиатуры) 2.Вывести матрицу типа: 1 2 3 4 5 5 1 2 3 4 4 5 1 2 3 3 4 5 1 2 2 3 4 5 1 Буду очень благодарен=))
C++ Сумма элементов главной диагонали массива В квадратном массиве записаны целые числа. Определить сумму элементов главной диагонали массива, которые больше 20. Добавлено через 17 минут забыл дописать, код на Си пожалуйста подробнее

Показать сообщение отдельно
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
17.03.2011, 12:10     с++ дерево классы
Написал дерево, но при добавлении нового элемента(add) происходит косяк

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef TREEITEM_H
#define TREEITEM_H
#pragma once
 
#include <vector>
 
using namespace std;
 
 
class TreeItem
{
    friend class Tree;
 
    typedef int Value;
 
public:
    TreeItem(const Value &val, TreeItem *pt) {
        value = val;
        parent = pt;
        numOfChilds = 0;
    }
 
    TreeItem(const TreeItem &Q) {
        value = Q.value;
        parent = Q.parent;
        numOfChilds = Q.numOfChilds;
        child = Q.child;
    }
 
private:
    Value value;
    Value numOfChilds;
    TreeItem *parent;
    vector<TreeItem*> child;
};
 
#endif
вот тут "ошибка" выделена
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef TREE_H
#define TREE_H
#pragma once
 
#include "TreeItem.h"
#include <vector>
 
using namespace std;
 
 
class Tree
{
    typedef int Value;
public:
    Tree() { 
        TreeItem tmp(0, 0);
        tree.push_back(tmp);
    }
 
    void add(const Value &val) {
        TreeItem tmp(tree.size(), &(tree[val])); //OK
        
        
        tree.push_back(tmp); //ERROR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
        tree[val].child.push_back(&tree[tree.size()]);
 
        
    }
 
private:
    vector<TreeItem> tree;
};
 
#endif
добавляет он что совсем не то что было в tmp. Точнее вместо ссылки на parent какую-то абракадабру. С чем это может быть связано? конструктор копий задан явно, как он так умудряется копировать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru