map中object对象转int
时间: 2023-07-21 22:05:19 浏览: 90
对象与map 的转换
在 C++ 中,如果你想将一个对象转换为 int 类型,需要重载该对象的类型转换运算符。以下是一个示例代码:
```cpp
#include <iostream>
#include <map>
using namespace std;
class MyObject {
public:
MyObject(int value) : m_value(value) {}
// 重载类型转换运算符,将对象转换为 int 类型
operator int() const { return m_value; }
private:
int m_value;
};
int main() {
map<int, MyObject> myMap;
myMap[1] = MyObject(123);
myMap[2] = MyObject(456);
// 将 MyObject 对象转换为 int 类型
int value1 = myMap[1];
int value2 = static_cast<int>(myMap[2]);
cout << value1 << endl; // 输出 123
cout << value2 << endl; // 输出 456
return 0;
}
```
在上面的代码中,我们定义了一个 `MyObject` 类,其中包含一个整数成员变量 `m_value`。我们在类中重载了类型转换运算符 `operator int()`,使得 `MyObject` 对象可以自动转换为 int 类型。在 `main` 函数中,我们创建了一个 `std::map<int, MyObject>` 对象 `myMap`,并将其中的键值对赋值为 `1: MyObject(123)` 和 `2: MyObject(456)`。接着,我们通过 `myMap[1]` 和 `myMap[2]` 来获取相应的 `MyObject` 对象,并将其分别转换为 int 类型并输出。
阅读全文