vector 中存指针
时间: 2023-08-14 16:14:12 浏览: 207
在C++中,你可以使用`std::vector`来存储指针。首先,你需要定义一个指向特定类型的指针的`std::vector`。例如,如果你想存储`int`类型的指针,可以这样定义:
```cpp
std::vector<int*> myVector;
```
然后,你可以使用`push_back`函数将指针添加到向量中:
```cpp
int* pointer = new int(42);
myVector.push_back(pointer);
```
记得在不需要使用指针时,要释放内存:
```cpp
for (auto ptr : myVector) {
delete ptr;
}
```
这样做可以确保在释放`std::vector`之前释放所有指针。
相关问题
std::vector存对象指针好还是存对象好
这个问题的答案取决于你的具体需求。如果你需要在 vector 中存储的对象是多态的,即需要使用基类指针来指向派生类对象,那么存储对象指针是更好的选择。否则,存储对象本身会更加简单和高效。
存储对象指针的好处是可以避免对象拷贝和移动的开销,同时也可以避免对象切片问题。但是需要注意的是,存储指针需要手动管理内存,需要注意内存泄漏和悬空指针等问题。
存储对象本身的好处是可以避免上述问题,同时也更加简单和高效。但是需要注意的是,存储对象本身会涉及到对象拷贝和移动的开销,需要注意性能问题。
QList作为指针存值
QList是Qt中的一个容器类,可以用于存储一组有序的元素,类似于STL中的vector。如果要将指针存储在QList中,可以使用QList<T*>模板类,其中T代表指针所指向的类型。
下面是一个简单的示例,展示如何将指针存储在QList中:
```
QList<int*> list; // 定义一个存储int类型指针的QList
int a = 1, b = 2, c = 3;
list.append(&a); // 将指向变量a的指针添加到list中
list.append(&b); // 将指向变量b的指针添加到list中
list.append(&c); // 将指向变量c的指针添加到list中
```
在上面的示例中,我们定义了一个存储int类型指针的QList,并向其中添加了三个指针,分别指向变量a、b、c。
阅读全文