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

Передать итератор на шаблонный вектор в функцию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Код из книги выдаёт ошибку http://www.cyberforum.ru/cpp-beginners/thread995884.html
Код из книги выдаёт ошибку. Использую Visual Studio 2010 Exspress //: CO3:Forward.cpp // Опережающие объявления функций и данных //Page 120 #include<iostream> using namespace std; ...
C++ Из массива удалить четные элементы Здравствуйте. Всю жизнь программировал на Паскале и вдруг си++...помогите пожалуйста с заданием. Написать программу на языке C++ в среде Microsoft Visual Studio 2010 C++. Исходные данные задаются... http://www.cyberforum.ru/cpp-beginners/thread995883.html
C++ Ряд Тейлора: Вычислить значение функции
Здравствуйте! Всю жизнь программировал на Паскале и вдруг си++...помогите пожалуйста с заданием, желательно с объяснением, ибо чайник полный.. Написать программу на языке C++ в среде Microsoft...
C++ Массив по возрастанию
Написать программу, которая сортирует массив по возрастанию различными методами: пузырьковый, подсчёта и быстрая (шелла). Массив заполнить случ. числами. Вывести время выполнения алгоритма для каждой...
C++ Востановление состояния программы после завершения http://www.cyberforum.ru/cpp-beginners/thread995873.html
Здорова господа!!! Пишу прогу которая работает можно сказать в фоновом режиме (непрерывно) и от нужно например при непредвиденных ситуациях таких как завис комп либо выключили свет или там...
C++ Указатели на функции Доброго всем времени суток.Помогите разобраться с указателями на функции.Вот мой код #include <iostream> #include <stdlib.h> #include <Windows.h> using namespace std; //Прототипы функций bool... подробнее

Показать сообщение отдельно
R_e_n
0 / 0 / 0
Регистрация: 30.07.2012
Сообщений: 35

Передать итератор на шаблонный вектор в функцию - C++

03.11.2013, 00:13. Просмотров 984. Ответов 2
Метки (Все метки)

Здравствуйте.

Есть два вектора
C++ (Qt)
1
2
std::vector<Player> players; //  Player - структура с двумя полями
std::vector<size_t> indices;
Я хочу написать функцию сортировку, в которую можно было бы передать любой из этих массивов:

Если бы у меня были массивы, я бы написал:

C++ (Qt)
1
2
template <class T>
void QuickSort(T* elements, size_t size, bool (*cmpElements)(T*, T*));
И две функции:
C++ (Qt)
1
2
bool cmpPlayers(Player* player1, Player* player2);
bool cmpIndices(size_t* index1, size_t* index2);
Ну и вызывал бы:
C++ (Qt)
1
2
QuickSort(players, players.size(), cmpPlayers);
QuickSort(indices, indices.size(), cmpIndices);
Но для векторов этот код не работает. Я пробовал вот так:
C++ (Qt)
1
2
template <class T>
void QuickSort(typename std::vector<T>::iterator elements, size_t size, bool (*cmpElements)(typename std::vector<T>::iterator, typename std::vector<T>::iterator));
Но ничего не получилось: "не удается составить аргумент шаблон для "T""


1. Подскажите, пожалуйста,как нужно сделать.
2. Буду рад выслушать критику по интерфейсу (не те переменные передаю функцию, не так назвал, не так передаю и пр)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru