C++ 一个vector快速分割成多个vector
代码如下:
std::vector<std::vector<float>> splitVector(std::vector<float> v, unsigned int step)
{
std::vector<std::vector<float>> result;
if (step >= v.size())
{
result.push_back(v);
}
else
{
std::vector<float>::iterator curPtr = v.begin(),endPtr = v.end(),end;
while (curPtr < endPtr)
{
end = endPtr - curPtr > step ? step + curPtr : endPtr;
step = endPtr - curPtr > step ? step : endPtr - curPtr; // 如果是最后一组,可能凑不够step个,剩下几个step就设为几,防止指针溢出
result.push_back(std::vector<float>(curPtr, end));
curPtr += step;// 每step个元素作为一个新vector
}
}
return result;
}