如何在C++中使用set和get与运算符重载结合

avatar
作者
筋斗云
阅读量: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函数中展示了如何使用这个类。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!