Формально, std::vector
(для любого T
) не является тривиально копируемым , потому что его конструктор копирования не тривиален , хотя бы потому, что он предоставляется пользователем (в отличие от к неявно определенным).
Практически говоря, копирование вектора включает в себя нечто большее, чем просто создание поверхностной копии его элементов данных - для этого требуется выделение буфера памяти в куче и копирование его содержимого из буфера, выделенного в куче другого вектора.
Хорошо вложенные наборы являются большими, если Вы работаете с иерархическими данными. Это намного более сложно для реализации его только с массивами php особенно, если Вы хотите сохранить их информация в базе данных.
Вы могли примерить это. Никогда не использовал его, но после короткого кода, экранирующего его, взгляды почти завершаются.
Вокруг существует что-то новое: http://www.sideralis.org/baobab/
Старый и устаревший ответ. Библиотека больше не поддерживается.
Я пользовался nstrees библиотекой "buggzzy", отправил (http://www.edutech.ch/contribution/nstrees/index.php) для проекта, где я должен был дать пользователю возможность создать и отредактировать организационную схему его компании.
Мне нравится "Измененный алгоритм" Обхода дерева Перед порядком очень, но мне кажется, что nstree библиотека является медленной. В моем случае я должен выполнить итерации рекурсивно вниз дерева. Возможно, это - что-то еще в моем сценарии, который является медленным.
Так или иначе я также все еще ищу альтернативу, и я недавно проверил ГРУШЕВЫЙ веб-сайт и нашел древовидную библиотеку там также: http://pear.php.net/package/Tree
Библиотека PEAR не казалась столь же всесторонней как NSTREE, но я предполагаю, что это могло быть более производительно.
Статья, которая помогла мне много с этим вопросом: Хранить Иерархические Данные в Базе данных