This documentation is automatically generated by online-judge-tools/verification-helper
View the Project on GitHub suisen-cp/cp-library-cpp
#include "library/util/vector_ops.hpp"
#ifndef SUISEN_VECTOR_OPS #define SUISEN_VECTOR_OPS #include <vector> namespace suisen { template <typename T> std::vector<T>& operator+=(std::vector<T> &a, const std::vector<T> &b) { int n = a.size(); a.resize(n + b.size()); std::copy(b.begin(), b.end(), a.begin() + n); return a; } template <typename T> std::vector<T> operator+(const std::vector<T> &a, const std::vector<T> &b) { std::vector<T> c = a; return c += b; } template <typename T> std::vector<T>& operator+=(std::vector<T> &a, const T &b) { a.push_back(b); return a; } template <typename T> std::vector<T> operator+(const std::vector<T> &a, const T &b) { std::vector<T> c = a; return c += b; } template <typename T> std::vector<T>& operator+=(std::vector<T> &a, const T &&b) { a.push_back(b); return a; } template <typename T> std::vector<T> operator+(const std::vector<T> &a, const T &&b) { std::vector<T> c = a; return c += b; } template <typename T> std::vector<T>& operator*=(std::vector<T> &a, const int repeat) { int n = a.size(); a.resize(n * repeat); for (int i = 1; i < repeat; ++i) std::copy(a.begin(), a.end(), a.begin() + i * n); return a; } template <typename T> std::vector<T> operator*(std::vector<T> &a, const int repeat) { std::vector<T> c = a; return c *= repeat; } } // namespace suisen #endif // SUISEN_VECTOR_OPS
#line 1 "library/util/vector_ops.hpp" #include <vector> namespace suisen { template <typename T> std::vector<T>& operator+=(std::vector<T> &a, const std::vector<T> &b) { int n = a.size(); a.resize(n + b.size()); std::copy(b.begin(), b.end(), a.begin() + n); return a; } template <typename T> std::vector<T> operator+(const std::vector<T> &a, const std::vector<T> &b) { std::vector<T> c = a; return c += b; } template <typename T> std::vector<T>& operator+=(std::vector<T> &a, const T &b) { a.push_back(b); return a; } template <typename T> std::vector<T> operator+(const std::vector<T> &a, const T &b) { std::vector<T> c = a; return c += b; } template <typename T> std::vector<T>& operator+=(std::vector<T> &a, const T &&b) { a.push_back(b); return a; } template <typename T> std::vector<T> operator+(const std::vector<T> &a, const T &&b) { std::vector<T> c = a; return c += b; } template <typename T> std::vector<T>& operator*=(std::vector<T> &a, const int repeat) { int n = a.size(); a.resize(n * repeat); for (int i = 1; i < repeat; ++i) std::copy(a.begin(), a.end(), a.begin() + i * n); return a; } template <typename T> std::vector<T> operator*(std::vector<T> &a, const int repeat) { std::vector<T> c = a; return c *= repeat; } } // namespace suisen