vector一般常用作变长数组使用。有些场景需要应用二维变长数组,并需要对其按一定规则排序。这里给出一个实例:背景针对每一维的数组按照数字个数大的排在后面,个数相同的数组按照第一个数值不同字面值大的排在后面。
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
vector<vector<int>> g_vcMatrix;
/*字定义函数对象:一维数组的比较规则*/
bool Mycompare(vector<int>& vc1, vector<int>& vc2)
{
if (vc1.size() < vc2.size())
{
return true;
}
else if (vc1.size() == vc2.size())
{
for (int i = 0; i < vc1.size(); i++)
{
if (vc1[i] < vc2[i])
{
return true;
}
}
}
return false;
}
void fun()
{
vector<int> vcTemp;
vcTemp.push_back(5);
vcTemp.push_back(2);
vcTemp.push_back(6);
vcTemp.push_back(32);
sort(vcTemp.begin(), vcTemp.end());
g_vcMatrix.push_back(vcTemp);
vcTemp.clear();
vcTemp.push_back(3);
vcTemp.push_back(5);
vcTemp.push_back(3);
sort(vcTemp.begin(), vcTemp.end());
g_vcMatrix.push_back(vcTemp);
vcTemp.clear();
vcTemp.push_back(4);
vcTemp.push_back(2);
vcTemp.push_back(6);
vcTemp.push_back(32);
sort(vcTemp.begin(), vcTemp.end());
g_vcMatrix.push_back(vcTemp);
sort(g_vcMatrix.begin(), g_vcMatrix.end(), Mycompare);
}
void main()
{
fun();
}