如何在C ++中删除缓冲区的前3个字节?
在javascript中我会简单地说:
var hashed = new Buffer(packet, "hex");
// remove first 3 bytes from packet
hashed = hashed.slice(3);
示例:
01 02 03 04 05 06
输出:
04 05 06
我的C ++代码:
size_t size = node::Buffer::Length(packet->ToObject());
char *buf = node::Buffer::Data(packet->ToObject());
Node.js代码(用法):
var addon = require('./build/Release/krypto');
console.log(addon.encrypt( new Buffer("3A00F063F9757D6FE7ABD8ABCE8387C8C14F43CDE1DAA64D195BB8", "hex") ));
答案 0 :(得分:1)
从缓冲区中删除内容是一项代价高昂的操作。通常,缓冲区保持不变,并使用某种指针或索引标记来标记缓冲区的当前逻辑起始位置。根据您的缓冲区是数组,std :: vector还是完全不同的东西,这可能是数组类型的const TYPE*
,或简单size_t
索引或某些{std::vector<TYPE>::const_iterator
1}}。