缩短字节向量上的push_back系列

Eta*_*tan 2 c++ vector

在我的代码中,我想使用字节向量将一些数据存储在内存中.问题是,我当前的方法使用了许多代码行:

std::vector<byte> v;
v.push_back(0x13);
v.push_back(0x37);
v.push_back(0xf0);
v.push_back(0x0d);
Run Code Online (Sandbox Code Playgroud)

我怎样才能缩短这个程序,以便我有例如:

std::vector<byte> v(4) = "\x13\x37\xf0\x0d"; // example code - not working
Run Code Online (Sandbox Code Playgroud)

tim*_*day 6

升压分配库提供了这样的事情很多有用的工具.文档中的第一个例子是

#include <vector>
#include <boost/assign/std/vector.hpp> // for 'operator+=()'
#include <boost/assert.hpp>; 
using namespace std;
using namespace boost::assign; // bring 'operator+=()' into scope

vector<int> v; 
v += 1,2,3,4,5,6,7,8,9;
Run Code Online (Sandbox Code Playgroud)

  • 虽然我在项目中使用了一些东西,但我从来都不是一个很好的助推器.但这是一个很好的例子,说明为什么你应该非常小心你使用哪些提升 - 而不是所有这些都是由天才写的. (2认同)
  • 这只是一个方便的功能,通过其他机制无法做任何事情.这是我从来不需要做的事情,并打破了关于运算符重载的基本编程指南 - 不要太聪明. (2认同)