在C++中,擦除重复项和对矢量进行排序的有效方法分别是使用std::unique
和std::sort
算法。std::unique
用于在序列中移除相邻的重复元素,而std::sort
用于对序列进行排序。
std::sort
对矢量排序。std::unique
擦除相邻的重复项。std::sort
对矢量进行排序。std::sort
对矢量排序。std::unique
擦除相邻的重复项。std::sort
对矢量进行排序。#include <iostream>
#include <vector>
#include <algorithm>
int main() {
// 示例矢量
std::vector<int> myVector = {3, 1, 2, 2, 4, 3, 5, 4, 6, 6};
// 擦除重复项
std::sort(myVector.begin(), myVector.end()); // 先排序
myVector.erase(std::unique(myVector.begin(), myVector.end()), myVector.end());
// 打印擦除重复项后的矢量
std::cout << "擦除重复项后的矢量: ";
for (int num : myVector) {
std::cout << num << " ";
}
// 对矢量进行排序
std::sort(myVector.begin(), myVector.end());
// 打印排序后的矢量
std::cout << "\n排序后的矢量: ";
for (int num : myVector) {
std::cout << num << " ";
}
return 0;
}
std::unique
前需要先对矢量进行排序。std::sort
使用快速排序,对于小型矢量可以考虑使用std::sort
,对于大型矢量可考虑其他排序算法。std::unique
擦除重复项后,矢量的容量不会改变,可以使用std::vector<int>(myVector.begin(), it)
构造一个新矢量来释放多余内存。在C++中,使用std::unique
和std::sort
是擦除重复项和对矢量进行排序的有效方法。确保在使用std::unique
前对矢量进行排序,根据需求选择合适的排序算法,同时注意擦除重复项后的矢量容量。