容器访问宏

#define PRINT_ELEMENTS(a)\
 {for_each(a.begin(),a.end(),[](auto val){cout<<val<<" ";}); cout<<endl;}

#define INSERT_ELEMENTS(v,b,e) {for(auto i = b;i < e;i++){v.push_back(i);}}
宏定义里面有 for(){}、 do{...}while(0) 、 if(){}、存在变量声明 加花括号
顺便说一下,尽量不要用宏,为了效率可以把函数设成inline
template<typename V>
inline void PRINT_ELEMENTS(const V& v)
{
	for_each(v.begin(), v.end(), [](auto val) {cout << val << " "; }); cout << endl;
}

template<typename V, typename B, typename E>
inline void INSERT_ELEMENTS(V& v, B b, E e)
{
	for (auto i = b; i < e; i++) 
	{
		v.push_back(i); 
	}
}


 
 
 

猜你喜欢

转载自blog.csdn.net/qq_28016947/article/details/69396840