vector中存放的指针类型元素 如何排序
时间: 2024-04-11 13:27:02 浏览: 171
你可以使用标准库中的`std::sort`函数来对存放指针类型元素的vector进行排序。然而,需要注意的是,由于vector存放的是指针,而不是实际的对象,因此排序时实际上是对指针进行排序。
下面是一个示例代码,演示了如何对存放指针类型元素的vector进行排序:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
// 比较函数,用于指定排序的顺序
bool compareIntPointers(int* a, int* b) {
return *a < *b; // 根据指针所指向的值进行比较
}
int main() {
std::vector<int*> vec; // 存放指针类型元素的vector
// 向vector中添加元素
int a = 3, b = 1, c = 2;
vec.push_back(&a);
vec.push_back(&b);
vec.push_back(&c);
// 对vector中的元素进行排序
std::sort(vec.begin(), vec.end(), compareIntPointers);
// 输出排序后的结果
for (int* ptr : vec) {
std::cout << *ptr << " ";
}
return 0;
}
```
在上述示例代码中,我们定义了一个比较函数`compareIntPointers`,该函数接受两个指针参数,比较它们所指向的值的大小。然后,我们调用`std::sort`函数对存放指针类型元素的vector进行排序,并传入该比较函数作为排序的依据。最后,通过遍历排序后的vector并输出指针所指向的值,我们可以看到排序的结果。
请注意,在使用指针进行排序时,需要确保指针所指向的对象是有效的,并且不会在排序过程中被释放。
阅读全文