vector的元素是类指针,怎么输出元素所指向的地址的内容
时间: 2024-02-22 20:55:23 浏览: 27
如果 vector 的元素是类指针,想要输出元素所指向的地址的内容,需要使用指针运算符 `->` 来访问该指针所指向的对象的成员变量或成员函数。下面是一个示例代码:
```c++
#include <iostream>
#include <vector>
class MyClass{
public:
MyClass(int n): num(n) {}
void print() const {
std::cout << "MyClass num: " << num << std::endl;
}
private:
int num;
};
int main() {
std::vector<MyClass*> vec;
vec.push_back(new MyClass(1));
vec.push_back(new MyClass(2));
for (const auto& ptr : vec) {
ptr->print(); // 通过指针运算符访问指针所指向的对象的成员函数
}
// 释放内存
for (const auto& ptr : vec) {
delete ptr;
}
return 0;
}
```
在这个示例中,我们定义了一个 `MyClass` 类,它有一个 `num` 成员变量和一个 `print()` 成员函数。我们通过 `new` 运算符创建了两个 `MyClass` 对象,并将它们的指针存入 vector 中。在输出元素所指向的地址的内容时,我们通过指针运算符 `->` 访问了每个指针所指向的对象的 `print()` 成员函数。
输出结果:
```
MyClass num: 1
MyClass num: 2
```
注意:在使用指针时需要注意内存泄漏的问题,需要在适当的时候释放内存。在这个示例中,在程序结束之前,我们需要遍历 vector 并释放每个指针所指向的内存。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)