Ответ 1
Нет встроенной функции для непосредственного вычисления; другой подход заключается в использовании std::distance
:
size_t n = std::distance(xMainNode.children("name").begin(), xMainNode.children("name").end());
Конечно, это линейное число дочерних узлов; обратите внимание, что вычисление числа всех дочерних узлов std::distance(xMainNode.begin(), xMainNode.end())
также является линейным - нет постоянного доступа к дочернему счету node.