Найдено результатов: 2

Построить базовый итератор Python

Как можно было бы создать итеративную функцию (или объект итератора) в python?

python   object   iterator    

532   9   13:47, 13th August, 2020


Как сделать дерево в C++?

Как сделать древовидную структуру данных в C++, которая использует итераторы вместо указателей? Я не смог найти ничего в STL, что могло бы сделать это. Что я хотел бы сделать, так это иметь возможность создавать и манипулировать деревьями, как это:

#include <iostream>
#include <tree>
using namespace std;

int main()
{
    tree<int> myTree;

    tree<int>::iterator i = myTree.root();
    *i = 42;

    tree<int>::iterator j = i.add_child();
    *j = 777;
    j = j.parent();

    if (i == myTree.root() && i == j) cout << "i and j are both pointing to the root\n";

    return 0;
}

Спасибо, tree.hh-это как раз то, что я искал.

Если это делается для получения выгоды от структура данных, содержащая произвольные типы индексов, оптимизированные для поиска и хорошо на вставке тогда считайте используя карту.

Карта-это ассоциативный контейнер, который имеет гарантии производительности идентичные к тем из дерева: логарифмические поиск, логарифмическая вставка, логарифмическое удаление, линейное пространство. Внутри страны они часто реализуются как красно-черные деревья, хотя это и так не гарантия. Тем не менее, как пользователь STL все, о чем вы должны заботиться, это гарантии производительности STL алгоритмы и структуры данных. Реализуются ли они в виде деревьев или маленькие зеленые человечки не должны иметь значения для тебя.

Я не уверен, что карта - это то, что мне нужно, но спасибо за информацию. Я буду помнить, чтобы использовать карты, когда это возможно, вместо реализации деревьев.

c++   tree   iterator    

414   2   21:34, 20th August, 2020