Форум программистов, компьютерный форум 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; //Объявления не являются внешними в нормальном смысле. //но компилятор должен знать о том, что они где-то существуют: extern int i;
C++ Из массива удалить четные элементы Здравствуйте. Всю жизнь программировал на Паскале и вдруг си++...помогите пожалуйста с заданием. Написать программу на языке C++ в среде Microsoft Visual Studio 2010 C++. Исходные данные задаются путем ввода с клавиатуры. Ответ необходимо вывести на экран с описанием задания, входных и выходных данных. Задача: Из массива удалить четные элементы, стоящие после максимального. Пример: из... http://www.cyberforum.ru/cpp-beginners/thread995883.html
C++ Ряд Тейлора: Вычислить значение функции
Здравствуйте! Всю жизнь программировал на Паскале и вдруг си++...помогите пожалуйста с заданием, желательно с объяснением, ибо чайник полный.. Написать программу на языке C++ в среде Microsoft Visual Studio 2010 C++, вычисляющую значение функции, используя ряд Тейлора. Исходные данные задаются путем ввода с клавиатуры. Ответ необходимо вывести на экран с описанием задания, входных и выходных...
C++ Массив по возрастанию
Написать программу, которая сортирует массив по возрастанию различными методами: пузырьковый, подсчёта и быстрая (шелла). Массив заполнить случ. числами. Вывести время выполнения алгоритма для каждой сортировки (массивы должны быть одинаковыми). Проверить различные размерности массива (по-моему 1000, 10000, 100000 и 1000000, точно не знаю). Результаты выводить в excel, построить графики и...
C++ Востановление состояния программы после завершения http://www.cyberforum.ru/cpp-beginners/thread995873.html
Здорова господа!!! Пишу прогу которая работает можно сказать в фоновом режиме (непрерывно) и от нужно например при непредвиденных ситуациях таких как завис комп либо выключили свет или там интернет пропал, она например завершила свою работу. После включения нужно что бы она не заново начала работать, а примерно с того места с которого она завершилась. От если прога отработала 10 часов и не...
C++ Указатели на функции Доброго всем времени суток.Помогите разобраться с указателями на функции.Вот мой код #include <iostream> #include <stdlib.h> #include <Windows.h> using namespace std; //Прототипы функций bool Funk_1 (int);//Функции сравнения bool Funk_2 (int);//Функции сравнения void Funk_1_1 ();//Подсказки подробнее

Показать сообщение отдельно
R_e_n
0 / 0 / 0
Регистрация: 30.07.2012
Сообщений: 35
03.11.2013, 00:13     Передать итератор на шаблонный вектор в функцию
Здравствуйте.

Есть два вектора
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. Буду рад выслушать критику по интерфейсу (не те переменные передаю функцию, не так назвал, не так передаю и пр)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru