Loading...
Searching...
No Matches
transforms.h
Go to the documentation of this file.
1
23
24#ifndef FCPP_TRANSFORMS_H
25#define FCPP_TRANSFORMS_H
26
27#include <set>
28#include <utility>
29#include <vector>
30
31namespace fcpp::transforms {
32
40template <typename T>
41std::vector<T> to_vector(const std::set<T> &items) {
42 std::vector<T> result;
43 result.reserve(items.size());
44 for (const auto &v : items) {
45 result.emplace_back(v);
46 }
47 return result;
48}
49
57template <typename T>
58std::vector<T> to_vector(std::set<T> &&items) {
59 std::vector<T> result;
60 result.reserve(items.size());
61 while (!items.empty()) {
62 auto nh = items.extract(items.begin());
63 result.emplace_back(std::move(nh.value()));
64 }
65 return result;
66}
67
68} // namespace fcpp::transforms
69
70#endif // FCPP_TRANSFORMS_H
std::vector< T > to_vector(const std::set< T > &items)
Transform a set to a vector using copy semantics.
Definition transforms.h:41