如何使用sort()对任意多维向量进行排序?

时间:2015-05-28 02:11:54

标签: c++ sorting vector

例如,我有5个int vector:

a:3,5,9
b:3,5
c:
d:3,5,2
e:2,17

我希望排序结果是:c,e,b,d,a,因为:

c最短,所以最初

e的第一个元素是最小的,所以它是第二个

b和d在第一和第二时具有相同的元素,但是b具有更短的尺寸,因此第三

a的第三个元素大于d,所以a是最后一个

向量代码:

std::vector<int> a;
a.push_back(3);
a.push_back(5);
a.push_back(9);

std::vector<int> b;
b.push_back(3);
b.push_back(5);

std::vector<int> c;

std::vector<int> d;
d.push_back(3);
d.push_back(5);
d.push_back(2);

std::vector<int> e;
e.push_back(2);
e.push_back(17);

std::vector<std::vector<int> >myvector;
myvector.push_back(a);
myvector.push_back(b);
myvector.push_back(c);
myvector.push_back(d);
myvector.push_back(e);

向量是否在向量“myvector”中,如何编写一个sort()函数来处理“myvector”,它将获得我预期的排序结果?

1 个答案:

答案 0 :(得分:1)

使用srand

srand(time(NULL));

然后

sort(myvector.begin(), myvector.end());