1#ifndef CONTAINER_OPERATOR_H
2#define CONTAINER_OPERATOR_H
9std::vector<T>
operator + (
const std::vector<T> & x1,
const std::vector<T> & x2 )
11 assert(x1.size()==x2.size());
13 for(std::size_t
i=0;
i!=x1.size(); ++
i )
14 x.push_back(x1[
i]+x2[
i]);
19std::vector<T>
operator - (
const std::vector<T> & x1,
const std::vector<T> & x2 )
21 assert(x1.size()==x2.size());
23 for(std::size_t
i=0;
i!=x1.size(); ++
i )
24 x.push_back(x1[
i]-x2[
i]);
28template<
typename T1,
typename T2 >
29std::map<T1,T2>
operator + (
const std::map<T1,T2> & x1,
const std::map<T1,T2> & x2 )
31 assert(x1.size()==x2.size());
33 for(
const auto &x1i : x1 )
34 x.insert(std::make_pair( x1i.first, x1i.second + x2.at(x1i.first) ));
38template<
typename T1,
typename T2 >
39std::map<T1,T2>
operator - (
const std::map<T1,T2> & x1,
const std::map<T1,T2> & x2 )
41 assert(x1.size()==x2.size());
43 for(
const auto &x1i : x1 )
44 x.insert(std::make_pair( x1i.first, x1i.second - x2.at(x1i.first) ));
48template<
typename T1,
typename T2 >
49std::vector<T2>
operator * (
const T1 & x1,
const std::vector<T2> & x2 )
52 for(std::size_t
i=0;
i!=x2.size(); ++
i )
53 x.push_back(x1*x2[
i]);
57template<
typename T1,
typename T21,
typename T22 >
58std::map<T21,T22>
operator * (
const T1 & x1,
const std::map<T21,T22> & x2 )
61 for(
const auto & x2i : x2 )
62 x.insert(std::make_pair( x2i.first, x1*x2i.second ));
const std::complex< double > i
Definition cal_pLpR.cpp:46
std::vector< T > operator-(const std::vector< T > &x1, const std::vector< T > &x2)
Definition container_operator.h:19
std::vector< T > operator+(const std::vector< T > &x1, const std::vector< T > &x2)
Definition container_operator.h:9
std::vector< T2 > operator*(const T1 &x1, const std::vector< T2 > &x2)
Definition container_operator.h:49