Имеется код, который работает в C++11:
#include <algorithm>
#include <iostream>
#include <vector>
#include <utility>
#include <iterator>
typedef std::pair<void*, int> pair;
int main(){
std::vector<pair> s;
std::vector<int> r;
pair p1(NULL, 42);
pair p2(NULL, 100500);
s.push_back(p1);
s.push_back(p2);
std::transform(s.begin(), s.end(), std::back_inserter(r), static_cast<const int&(*)(const pair&)>(std::get<1>));
std::copy(r.begin(), r.end(), std::ostream_iterator<int>(std::cout, " "));
}
Вывод:
42 100500
Хочется реализовать подобное в C++03 без использования пользовательского функтора/функции типа:
struct F {
int operator()(const pair& p) { return p.second; }
};
или
int f(const pair& p) { return p.second; }
и вызова вида:
std::transform(s.begin(), s.end(), std::back_inserter(r), F());
Можно ли это сделать с помощью цепочки готовых библиотечных адаптеров? std::get
в C++03 ещё не было.
Использовать ручной цикл for
вместо transform
также не хочется, т.к. это влечёт за собой упоминание типов итераторов, да и не для того алгоритмы придуманы, чтобы вручную циклы писать.
Международное сообщество SO говорит, что нет стандартных функций для получения first
и second
членов std::pair
в С++03. Как следствие, нет возможности и решить поставленную задачу. Всем спасибо за участие :)
#include <algorithm>
#include <iostream>
#include <vector>
#include <utility>
#include <iterator>
typedef std::pair<void*, int> pair;
struct F {
int operator()(const pair& p) { return p.second; }
};
int main(){
std::vector<pair> s;
std::vector<int> r;
pair p1 = std::make_pair<void*, int>(NULL, 42);
pair p2 = std::make_pair<void*, int>(0, 100500);
s.push_back(p1);
s.push_back(p2);
std::transform(s.begin(), s.end(), std::back_inserter(r), F());
std::copy(r.begin(), r.end(), std::ostream_iterator<int>(std::cout, " "));
}
Компилятор MSVC 2010
Вывод:
42 100500
Виртуальный выделенный сервер (VDS) становится отличным выбором
Вычитал из этой статьи, что есть парсер JSONУдобный парсер, но при вводе значений на русском языке выводится ошибка
Например, есть mysql-таблица:
На въюхе у меня должно быть два цикла: один выводит все категории, второй, который находится внутри первого, выводит все бренды данной категорииПример:
Народ подскажите решениеЕсть пользователь который с консоли вводит числа эти числа переводятся в другую систему координат и их надо записать...