简而言之,我从一个队列中取数据
while (!shutdown)
{
std::vector<std::string> dataArray;
dataArray.reverse(16);
int dataSize = q.dequeue_bulk(dataArray, dataArraySize);
}
每次循环都要对 vector revese,代价是不是很高?如果把 vector 定义在循环外面,那么每次取到数据后,怎么清空数据?用 clear 会导致 vector 里面的元素调用析构带来性能损失。用 resize (0) 是否能达到效果?
std::vector<std::string> dataArray;
dataArray.reverse(16);
while (!shutdown)
{
int dataSize = q.dequeue_bulk(dataArray, dataArraySize);
// process data
dataArray.resize(0); // 这样是否可行?
}
--
FROM 54.241.198.*