一般我们在用Qt的QByteArrary或者List的时候,会有相应的append的方法,该函数,就是把数据加入末尾。但是std::vector就没有相应的方法。但是我们可以用insert方法来实现:

readBuffer.insert(m_readBuffer.end(), tmpreadBuffer.begin(), tmpreadBuffer.end());

readBuffer.insert(m_readBuffer.end(), tmpreadBuffer.begin(),  tmpreadBuffer.begin() + offset);

以上方法就是把一个tmpreadBuffer 的数据 append到m_readBuffer的尾端。

 

还可以分片拷贝到另一个vector中:

std::vector<T>::const_iterator first = m_readBuffer.begin();
std::vector<T>::const_iterator last = m_readBuffer.begin() + offset;
std::vector<T> tmpMsg(first, last);

 

也可以删除一段数据

m_readBuffer.erase(first,last)

这样,m_readBuffer.size()就变化了。变成删除数据后的大小。

擦除了之后,剩余的数据会自动move到m_readBuffer[0]的位置。

 

相关文章:

  • 2021-04-18
  • 2021-06-09
  • 2021-06-27
  • 2022-12-23
  • 2021-09-26
  • 2022-12-23
  • 2021-09-28
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-07
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案