Eej*_*jin 13 c++ vector addition
我有一个int的向量,我想要添加多个值,但是太多的值要添加很多push_backs.是否有任何方法可以在向量的末尾添加多个值.有点像这样:
std::vector<int> values
values += {3, 9, 2, 5, 8, etc};
Run Code Online (Sandbox Code Playgroud)
我发现boost有类似的东西,但我不想包含boost.
#include <boost/assign/std/vector.hpp>
using namespace boost::assign;
{
std::vector<int> myElements;
myElements += 1,2,3,4,5;
}
Run Code Online (Sandbox Code Playgroud)
这似乎是这样声明的:
template <class V, class A, class V2>
inline list_inserter<assign_detail::call_push_back<std::vector<V,A> >, V>
operator+=( std::vector<V, A>& c, V2 v )
{
return push_back( c )( v );
}
Run Code Online (Sandbox Code Playgroud)
是否有任何C++/C++ 11方法可以做到这一点,如果没有,它将如何实现?
Sla*_*ica 25
这应该工作:
std::vector<int> values;
values.insert( values.end(), { 1, 2, 3, 4 } );
Run Code Online (Sandbox Code Playgroud)
也许有插入:
values.insert( values.end(), {3, 9, 2, 5, 8, etc} );
Run Code Online (Sandbox Code Playgroud)
演示.
你可以只创建一个运算符:
template <class T>
std::vector<T>& operator+=(std::vector<T>& lhs, std::initializer_list<T> l)
{
lhs.insert(std::end(lhs), l);
return lhs;
}
Run Code Online (Sandbox Code Playgroud)