可能经常从序列中的最后一个删除,仍然涉及循环排序,所以问题是在 < Kb 大小的容器上使用向量(而不是其他可用的容器和算法)并使用它是否与速度的含义相关原样:
std::vector<int> elements;
bool single_element = false
while (!single_element)
{
ApplySomeAlgorithm(elements, params); //weighted, but simple and comparable with looped deleting bellow
std::sort (elements.begin(), elements.end(), sort_function); // simple sort on int
single_element = (int (elements.size()) > 1) ? false : true;
while (!single_element)
{
if !(ApplySomeAlgorithm1(elements.back())) // actually only getter
break;
else
elements.pop_back();
single_element = (int (elements.size()) > 1) ? false : true;
}
}