cpp
重载
>>
输出vector
以及__int128
template <class T, typename = decltype(std::declval<T>().begin()),
typename = decltype(std::declval<T>().end()),
typename = typename std::enable_if<!std::is_base_of<
std::string, typename std::decay<T>::type>::value>::type,
typename value_type = typename T::value_type>
std::ostream &operator<<(std::ostream &out, const T &container) {
for (auto it = container.begin(); it != container.end(); ++it)
out << *it << ' ';
return out;
}
std::ostream &operator<<(std::ostream &out, __int128_t x) {
if (!x) return out << 0;
static int s[101], top;
top = 0;
while (x) s[top++] = x % 10, x /= 10;
for (int i = top - 1; i >= 0; i--) out << s[i];
return out;
}