阅读量:0
在C++中,你可以通过重载运算符来实现与set和get的结合。下面是一个示例:
#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内容的辅助函数 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; }
在这个示例中,我们创建了一个名为MyClass
的类,它包含一个std::set<std::string>
类型的私有成员变量mySet
和一个std::string
类型的私有成员变量myString
。我们重载了<<
运算符,使其能够将字符串插入到mySet
中。同时,我们还重载了[]
运算符,使其能够根据索引返回mySet
中的元素。最后,我们在main
函数中展示了如何使用这个类。