back
一个函数打印STL容器
满足range这个concept就可以使用该函数
#include <iostream>
#include <numeric>
#include <ranges>
#include <vector>
#include <array>
template <std::ranges::range T>
void println(const T& args)
{
for(const auto& v : args)
{
std::cout << v << ' ';
}
std::cout << '\n';
}
template <std::ranges::range... Ts>
void print(Ts... args)
{
(println(args), ...);
}
int main()
{
std::array<int, 10> arr;
std::iota(arr.begin(), arr.end(), 0);
std::vector<int> vec(10);
std::iota(vec.begin(), vec.end(), -10);
print(arr, vec);
}
输出
0 1 2 3 4 5 6 7 8 9
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1