C++中的`unordered_set`是一個無序的集合容器,用于存儲唯一的元素。它存儲的元素類型可以是任意自定義類型,包括保存兩個變量的情況。
要保存兩個變量,可以使用自定義結構體或類作為`unordered_set`的元素類型。下面是一個使用自定義結構體的示例:
```cpp
#include
#include
struct MyPair {
int x;
int y;
};
struct MyPairHash {
size_t operator()(const MyPair& pair) const {
return std::hash
}
};
struct MyPairEqual {
bool operator()(const MyPair& lhs, const MyPair& rhs) const {
return lhs.x == rhs.x && lhs.y == rhs.y;
}
};
int main() {
std::unordered_set
mySet.insert({1, 2});
mySet.insert({3, 4});
mySet.insert({1, 2}); // 重復的元素不會被插入
for (const auto& pair : mySet) {
std::cout << pair.x << ", " << pair.y << std::endl;
}
return 0;
}
```
在上面的示例中,`MyPair`是自定義的結構體,包含兩個整數類型的成員變量`x`和`y`。`MyPairHash`是自定義的哈希函數,用于計算`MyPair`類型的哈希值。`MyPairEqual`是自定義的相等比較函數,用于判斷`MyPair`類型的元素是否相等。
在`main`函數中,創建了一個`unordered_set`對象`mySet`,并使用`insert`函數插入了幾個`MyPair`類型的元素。注意,重復的元素不會被插入,因為`unordered_set`中的元素是唯一的。
最后,使用范圍`for`循環遍歷`mySet`,并輸出每個`MyPair`類型元素的成員變量`x`和`y`的值。
你可以根據自己的需求自定義`MyPair`結構體的成員變量和哈希函數、相等比較函數。