Форум программистов, компьютерный форум 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 ();//Подсказки подробнее

Показать сообщение отдельно
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,410
03.11.2013, 05:02     Передать итератор на шаблонный вектор в функцию
Цитата Сообщение от R_e_n Посмотреть сообщение
1. Подскажите, пожалуйста,как нужно сделать.
передавать итераторы начала и конца

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
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <vector>
 
template <typename T>
void swap(T& a, T& b)
{
    T c(a);
    a = b;
    b = c;
}
 
template <typename ForwardIterator>
void bubbleSort(ForwardIterator beg, ForwardIterator end)
{
    for (ForwardIterator it1 = beg; it1 != end; ++it1)
        for (ForwardIterator it2 = end-1; it2 != it1; --it2)
            if (*it2 < *(it2-1))
                swap(*(it2-1), *it2);
}
 
template <typename ForwardIterator, typename Compare>
void bubbleSort(ForwardIterator beg, ForwardIterator end, Compare comp)
{
    for (ForwardIterator it1 = beg; it1 != end; ++it1)
        for (ForwardIterator it2 = end-1; it2 != it1; --it2)
            if (comp(*it2, *(it2-1)))
                swap(*(it2-1), *it2);
}
 
template <typename T>
struct greater
{
    bool operator() (const T& x, const T& y) const {return y < x; }
};
 
int main()
{
    std::vector<int> v = {4, 3, 5, 2, 1};
    bubbleSort(v.begin(), v.end());
    for (auto &x: v) // C++11
        std::cout << x << " ";
    std::cout << std::endl;
 
    std::vector<double> v2 = {2.1, 5.2, 9.0, 1.1, 5.7};
    bubbleSort(v2.begin(), v2.end(), greater<double>());
    for (auto &x: v2) // C++11
        std::cout << x << " ";
    std::cout << std::endl;
}
 
Текущее время: 15:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru