在C++中,你可以通過重載運算符來實現(xiàn)與set和get的結(jié)合。下面是一個示例:
#include <iostream>
#include <set>
#include <string>
class MyClass {
private:
std::set<std::string> mySet;
std::string myString;
public:
// 重載set運算符
MyClass& operator<<(const std::string& value) {
mySet.insert(value);
return *this;
}
// 重載get運算符
std::string operator[](size_t index) const {
if (index < mySet.size()) {
size_t counter = 0;
for (const auto& item : mySet) {
if (counter == index) {
return item;
}
++counter;
}
}
throw std::out_of_range("Index out of range");
}
// 用于展示set內(nèi)容的輔助函數(shù)
void displaySet() const {
for (const auto& item : mySet) {
std::cout << item << std::endl;
}
}
};
int main() {
MyClass obj;
obj << "apple" << "banana" << "orange";
obj.displaySet();
try {
std::cout << "Element at index 1: " << obj[1] << std::endl;
} catch (const std::out_of_range& e) {
std::cerr << e.what() << std::endl;
}
return 0;
}
在這個示例中,我們創(chuàng)建了一個名為MyClass
的類,它包含一個std::set<std::string>
類型的私有成員變量mySet
和一個std::string
類型的私有成員變量myString
。我們重載了<<
運算符,使其能夠?qū)⒆址迦氲?code>mySet中。同時,我們還重載了[]
運算符,使其能夠根據(jù)索引返回mySet
中的元素。最后,我們在main
函數(shù)中展示了如何使用這個類。