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

Сортировка индексов алгоритмом std::sort - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка массива с указанием направления http://www.cyberforum.ru/cpp-beginners/thread321263.html
Здравствуйте еще раз! Есть массив отсортированный пузырьком. В функцию SortArr надо добавить третий параметр - указатель на шаблонную функцию определения направления сортировки. Можно сортировать другим методом. Спасибо! #include "stdafx.h" #include <iostream> using namespace std; template <typename T>
C++ блок while Каким блоком позначается в С++ оператор while? http://www.cyberforum.ru/cpp-beginners/thread321262.html
В-деревья,инициализация C++
Доброго времени суток)) есть вот такие структуры: typedef int index; int n=2; // порядок равен двум const int nn=4; // не более 2*n ключей typedef struct page*ref; struct item { int key;
C++ miniprintf
Здравствуйте! Помогите пожалуйста написать функцию аналог printf - miniprintf, с использование указателей и без использования printf и макросов чтобы поддерживать список аргументов. как-то так :) viod miniprintf (char *st) char *p = st; char **pp = &p - 1; Спасибо.
C++ fpos_t и передача в функцию FILE* (i/o stream) http://www.cyberforum.ru/cpp-beginners/thread321248.html
Есть уже созданый файл text.txt со след. содержанием: "1 2 3 4 5 6 ..." Вопрос. Если в одной функции файл открывается... FILE* p_File;
C++ Выкидует ошибки Подсчитать количество книг, которые были выданы читателю в поточном месяце, входными данными есть: шифр, название, цена дата выдачи #include "stdafx.h" #include <iostream> #include <math.h> # include <conio.h> #include <string.h> #include <windows.h> #include <tchar.h> #include <fstream> подробнее

Показать сообщение отдельно
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
16.03.2012, 09:23     Сортировка индексов алгоритмом std::sort
Цитата Сообщение от Deviaphan Посмотреть сообщение
есть более элегантное решение
Более элегантно это с лямбдой, но как я понимаю нужен С++03, попозже еще подумаю, как это сделать, пока тоже ничего не вижу, кроме сохранения в компараторе.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
 
int main()
{
   std::vector<int> idx = { 0, 1, 2, 3, 4 };
   std::vector<int> val = { 5, 1, 2, 8, 4 };
   
   std::sort(std::begin(idx), std::end(idx), 
      [val] (int a, int b) 
      {
         return val[a] < val[b];
      }
   );
   
   std::copy(std::begin(idx), std::end(idx), std::ostream_iterator<int>(std::cout, " "));
   std::cout << std::endl;
}
 
Текущее время: 09:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru