Форум программистов, компьютерный форум CyberForum.ru

vector - C++

Восстановить пароль Регистрация
 
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
25.12.2010, 19:46     vector #1
допустим есть вектор
C++
1
vector <pair <vector <int>, int> > v
вызываем функцию sort()
C++
1
sort(v.begin(), v.end())
как она сортирует??

по первому элементу
C++
1
v.first
?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2010, 19:46     vector
Посмотрите здесь:

C++ Указатель на объект вектор в векторе vector < vector<int>* >*
C++ vector<vector<double>> + std::sort()
VisualStudio C++ vector<vector<int> > push_back() C++
Работа со столбцами в vector< vector<int> > C++
C++ Записать числа из файла в двумерный массив или вектор вроде такого vector<vector<int>>
C++ Запись в vector<vector<char>>
C++ Не работает функция sort (vector, vector)
Сортировка vector<vector<int>> C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
26.12.2010, 00:56     vector #2
никак сортировать не будет.
алгоритм sort работает когда для параметра определена операция "<", а для pair operator< не перегружен

Добавлено через 25 минут
если только через предикаты - вот пример, сортирует по вторым ключам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <conio.h>
#include <vector>
#include <time.h>
#include <stdlib.h>
#include <iterator>
#include <algorithm>
 
using namespace std;
 
typedef pair<vector<int>, int> mypair;
 
bool comp(const mypair& Buffer1, const mypair& Buffer2)
{
    return Buffer1.second < Buffer2.second;
}
 
void out(const vector<mypair>& Buffer)
{
    for (vector<mypair>::const_iterator i = Buffer.begin(); i != Buffer.end(); ++i)
        cout << i->second << "  ";
}
 
int main()
{   
    srand((unsigned)time(NULL));
    vector<mypair> g;
    for (size_t i = 0; i < 6; ++i)
        g.push_back(mypair(vector<int>(rand() % 10), rand() % 10));
    out(g);
    cout << endl;
    sort(g.begin(), g.end(), comp);
    out(g);
    
    _getch();
    return 0;
}
Yandex
Объявления
26.12.2010, 00:56     vector
Ответ Создать тему
Опции темы

Текущее время: 12:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru