Ну, SIZE
, вероятно, не макрос, потому что здесь вы инициализируете его с 10 и имеете его как переменную. Если бы это был макрос, ваше выражение int a[SIZE]
сработало бы, но вам все равно не понадобились бы строки 2-4.
Если SIZE
является, как здесь, нормальной переменной (которая включает в себя динамическое создание A
с параметром размера, , хотя входные данные могут быть из макроса), вы должны использовать вектор.
#include <vector>
class A {
const int SIZE;
A() : SIZE(10) {}
void aaa() { std::vector<int> a(SIZE); }
};
Использование a
теперь то же самое.
Статья Managing Hierarchical Data в MySQL дает яркий пример того, как использовать Вложенные Наборы и дает примеры многих общих запросов, включая этого.
вот то, как найти непосредственных детей узла:
SELECT node.name, (COUNT(parent.name) - (sub_tree.depth + 1)) AS depth
FROM nested_category AS node,
nested_category AS parent,
nested_category AS sub_parent,
(
SELECT node.name, (COUNT(parent.name) - 1) AS depth
FROM nested_category AS node,
nested_category AS parent
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.name = '**[[MY NODE]]**'
GROUP BY node.name
ORDER BY node.lft
)AS sub_tree
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.lft BETWEEN sub_parent.lft AND sub_parent.rgt
AND sub_parent.name = sub_tree.name
GROUP BY node.name
HAVING depth = 1
ORDER BY node.lft;
и затем объединение, что с тем, что вершина будет иметь rgt
равный lft + 1
, и Вы установлены. простите игру слов.