2013-10-17 81 views
0

我有一個boost :: ptr_vector,我想保持按排序順序。boost :: ptr_vector排序函數

我創建了一堆包含幾個簡單字符串和值的Customer對象,然後將它們存儲在boost :: ptr_vector中,並且它們需要按其中一個字符串進行排序。

我看了看周圍,但似乎無法找到關於boost :: ptr_vector成員函數的許多信息,但它似乎有一個名爲sort(),我認爲它與我正在嘗試做的事情有關,但是,關於這個函數的用法並不多。

是否有一個「insert in order」類型的函數可用於boost :: ptr_vector?或者我是否需要將所有內容加載到矢量中,然後再進行排序?

任何幫助,將不勝感激 感謝

回答

2

你問太多的ptr_vector的。 A ptr_vector只是std::vector的包裝。同樣,還有其他的stdlib數據結構的包裝器。

總是排序(通過執行排序的插入)的數據結構是std::set。要使用該功能,您可以使用​​。看到這裏:http://www.boost.org/doc/libs/1_54_0/libs/ptr_container/doc/ptr_set.html

+0

謝謝你,但不幸的是這是一個單一的任務,它明確指出,我們需要使用boost :: ptr_vector這部分的任務..這是我們的原因比較不同數據結構的效率,以及boost :: ptr_vector就是其中之一。 – guskenny83

+1

聽起來非常像您必須嚴格執行一個錯誤的解決方案才能顯示並瞭解到ptr_vector對於您的任務而言不如ptr_set和其他人更高效。所以要回答這個問題:不,它不適用於ptr_vector。原因是數據結構的使用效率低下。 ;-)你總是可以編寫自己的插入方法來查詢ptr_vector並使用insert()。它會變慢。 – ypnos