2015-05-28 2 views
0

, например, у меня есть 5 Int вектор:Как отсортировать угловой многомерный вектор, используя sort()?

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

Я хочу результат сортировки: с, е, б, г, а, потому что:

с является кратчайшим, так что на первый

первый элемент е минимальна, так что на второй

б и д имеет тот же элемент на первом и втором, но Ь имеет меньший размер, так что в качестве третьего

т он третий элемент а больше, чем D, так что это последний

вектор в качестве кода:

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», как написать своего рода() функция к обрабатывать «myvector», который получит ожидаемый результат сортировки?

ответ

1

использование srand?

srand(time(NULL)); 

затем

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

Нет необходимости для 'srand', просто' станд :: сортировать (myvector.begin(), myvector.end()); 'это хорошо, как' станд :: sort' использует ['operator <' for 'std :: vector'] (http://en.cppreference.com/w/cpp/container/vector/operator_cmp), который сравнивается в лексикографическом порядке. Здесь вам не нужны никакие генераторы случайных чисел. – vsoftco

+0

вопрос сказал произвольный сорт для вектора, который не совсем уверен, что он спрашивает, тогда я решил, что случайные сгенерированные числа сортируются в векторе. спасибо tho –

+0

Я думаю, что OP просто означало, что любая возможная комбинация таких векторов должна быть сортируемой. В основном хочет отсортировать любые 'vector >', а 'std :: sort' делает именно то, что хочет OP. – vsoftco

Смежные вопросы