向量 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); //在末尾加入一个数据