C++ vector和sort的使用
向量 vector
是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。
sort的函数的功能是排序,但需要头文件#include<algorithm>的支持,所以在使用该函数时,一定要记得加上头文件。
该程序实现的功能是对数组进行排序并去重。
#include <iostream> #include <vector> #include <algorithm> using namespace std; class A { public: A(vector<int> a) { num = a; } vector<int> deleteData() { sort(num.begin(), num.end()); //从小到大排序 int i = 0, n = 0; for (i = 0; i < num.size() - n; i++) //此处减去n的原因是防止出现越界的问题。 { if (num[i] == num[i + 1]) { num.erase(num.begin() + i); //删除位置为i的元素 ++n; } } return num; } void print(vector<int> str) //打印数据 { for (auto x : str) { std::cout << ' ' << x; } std::cout << '\n'; } ~A() { } private: vector<int> num; }; int main() { //int a; //while (std::cin >> hex >> a) { //把输入的十六进制数转换为十进制 // cout << a << endl; //} vector<int> num{ 11,10,20,40,32,67,40,20,89,300,400,15 }; A a(num); //实例化 a.print(a.deleteData());
getchar();
return 0;
}
结果输出:
10 11 15 20 32 40 67 89 300 400
对于vector的其他用法:
vector<int> a;
a.insert(pos,data); //在位置pos处,插入data数据
a.insert(pos,n,data); //在位置pos处,插入n个data数据
a.erase(pos); //删除位置为pos的元素
a.begin(); //返回迭代器的第一个位置
a.end(); //返回容器的最后一个元素后面的元素的迭代器
a.front(); //返回第一个元素
a.max_size(); //返回容器中最大元素的个数
a.pop_back(); //删除最后一个数据
a.push_back(data); //在末尾加入一个数据