【问题标题】:boost::ptr_vector sort functionboost::ptr_vector 排序函数
【发布时间】:2013-10-17 01:46:01
【问题描述】:

我有一个 boost::ptr_vector,我想按排序顺序维护它。

我正在创建一堆包含几个简单字符串和值的 Customer 对象,然后将它们存储在 boost::ptr_vector 中,它们需要按其中一个字符串排序。

我环顾四周,但似乎找不到关于 boost::ptr_vector 成员函数的太多信息,但似乎有一个名为 sort() 我认为与我正在尝试做的事情相关,但是有关于这个功能的使用信息不多。

是否有可用于 boost::ptr_vector 的“按顺序插入”类型函数?还是我需要将所有内容加载到向量中,然后进行排序?

任何帮助将不胜感激 谢谢

【问题讨论】:

    标签: c++ sorting boost ptr-vector


    【解决方案1】:

    您对ptr_vector 的要求太高了。 ptr_vector 只是 std::vector 的包装器。同样,stdlib 数据结构也存在其他包装器。

    始终排序(通过执行排序插入)的数据结构是std::set。要使用该功能,您可以使用boost::ptr_set。见这里:http://www.boost.org/doc/libs/1_54_0/libs/ptr_container/doc/ptr_set.html

    【讨论】:

    • 谢谢,但不幸的是,这是一个 uni 分配,并且明确指出我们需要在这部分分配中使用 boost::ptr_vector .. 这样做的原因是我们比较不同数据结构的效率,boost::ptr_vector就是其中之一..
    • 听起来很像您将不得不实施一个糟糕的解决方案来准确显示和了解 ptr_vector 对您的任务的效率不如 ptr_set 和其他人......所以以这种方式回答问题:否,它不适用于 ptr_vector。原因是数据结构的使用效率低下。 ;-) 您始终可以编写自己的插入方法来查询 ptr_vector 并使用 insert()。会慢一些。
    猜你喜欢
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多