C++:如何在向量中挑选出最后四分之一的元素?

tro*_*000 1 c++ vector

在包含N个元素的向量中挑选最后四分之一元素的最佳方法是什么?

Naw*_*waz 7

size_t   n = src.size();
std::vector<int> dest(src.begin() + (3*n)/4, src.end());
Run Code Online (Sandbox Code Playgroud)

dest包含源向量中的最后四分之一元素src.

您还可以使用std::copy<algorithm>头文件,

std::vector<int> dest_copy;
std::copy(src.begin() + (3*n)/4, src.end(), std::back_inserter(dest_copy));
Run Code Online (Sandbox Code Playgroud)

请参阅ideone上的在线演示:http://ideone.com/qrVod

我想,您可能希望在表达方面做更多工作(3*n)/4.就像当n被说5,你要挑1唯一元素,但当n7,你可能想选择2的替代1.所以这个决定取决于你.我的解决方案只是告诉你,一旦你确定了多少元素,你将如何复制元素!