C++中Set和UnOrderSet的區別
在C++中,Set和UnOrderSet都是用於儲存資料以便於訪問和插入的資料結構型別。根據這兩種資料結構的特點,我們可以區分Set和UnOrderSet。
以下是Set和UnOrderSet之間的一些重要區別:
| 序號 | 關鍵點 | Set | UnOrderSet |
|---|---|---|---|
| 1 | 定義 | C++中的Set可以定義為一種關聯容器,它以鍵值對的形式儲存資料,其中每個值元素必須唯一,因為元素的值標識了它。 | 另一方面,UnOrderSet是C++ STL(標準模板庫)的一部分,定義為類似於Set的關聯容器,它儲存排序的鍵值對,但與按排序順序儲存資料的Set不同,UnOrderSet儲存的資料不是按排序順序儲存的。 |
| 2 | 排序 | 對於Set,資料按排序順序儲存。 | 另一方面,對於UnOrderSet,資料不是按排序順序儲存的。 |
| 3 | 重複值 | 在Set中,不允許儲存重複值。 | 另一方面,對於UnOrderSet,重複值會被丟棄。 |
| 4 | 實現 | Set使用二叉搜尋樹實現。 | 然而,另一方面,UnOrderedSet使用雜湊表建立。 |
示例
Set
#include
#include
using namespace std;
main() {
int data[15] = {11, 55, 22, 66, 33, 22, 11, 44, 77, 88, 66, 99, 66, 23, 41};
set my_set;
for(int i = 0; i<15; i++) { my_set.insert(data[i]); }
set::iterator it;
for(it = my_set.begin();
it != my_set.end(); it++) {
cout << "Item: " << *it << endl;
}
}輸出
Item: 11 Item: 22 Item: 23 Item: 33 Item: 41 Item: 44 Item: 55 Item: 66 Item: 77 Item: 88 Item: 99
示例
UnOrderSet
#include
#include using namespace std;
main() {
int data[15] = {11, 55, 22, 66, 33, 22, 11, 44, 77, 88, 66, 99, 66, 23, 41};
unordered_set my_set; for(int i = 0; i<15; i++) {
my_set.insert(data[i]);
}
unordered_set::iterator it;
for(it = my_set.begin(); it != my_set.end(); it++) {
cout << "Item: " << *it << endl;
}
}輸出
Item: 11 Item: 55 Item: 22 Item: 66 Item: 33 Item: 44 Item: 77 Item: 88 Item: 99 Item: 23 Item: 41
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP