C++ 如何将元素移动到向量的末尾? intmain(){ std::vec; 向量推回(1); 向量推回(2); 向量推回(向量[0]); for(auto it=vec.begin();it!=vec.end();it++){ std::cout

C++ 如何将元素移动到向量的末尾? intmain(){ std::vec; 向量推回(1); 向量推回(2); 向量推回(向量[0]); for(auto it=vec.begin();it!=vec.end();it++){ std::cout,c++,vector,erase,push-back,C++,Vector,Erase,Push Back,您可能正在寻找 intmain(){ //填充向量 std::vec; 向量推回(1); 向量推回(2); 向量推回(3); //将第一个元素移到末尾 旋转(向量开始(),向量开始()+1,向量结束()); //印刷内容 用于(自动e:vec){ std::cout“将向量中的元素移到末尾”与“通过引用向后推”有很大不同,不管后者是什么意思。使用列表会更好吗?@skypjack不太可能。查找删除/插入点的成本往往占主导地位。预取器不喜欢基于节点的数据结构。@BaummitAugen可能我读得太快

您可能正在寻找

intmain(){
//填充向量
std::vec;
向量推回(1);
向量推回(2);
向量推回(3);
//将第一个元素移到末尾
旋转(向量开始(),向量开始()+1,向量结束());
//印刷内容
用于(自动e:vec){

std::cout“将向量中的元素移到末尾”与“通过引用向后推”有很大不同,不管后者是什么意思。使用列表会更好吗?@skypjack不太可能。查找删除/插入点的成本往往占主导地位。预取器不喜欢基于节点的数据结构。@BaummitAugen可能我读得太快了,但我明白OP想要在其向量内移动元素。@skypjack我明白了。有点违反直觉,向量比列表更快。啊,是的,我想这就是我要找的。谢谢:)
int main(){
    std::vector<int> vec;
    vec.push_back(1);
    vec.push_back(2);
    vec.push_back(vec[0]);
    for (auto it = vec.begin(); it != vec.end(); it++) {
        std::cout << *it << std::endl;
    }
    return 0;
}
int main() {
    //Fill vector
    std::vector<int> vec;
    vec.push_back(1);
    vec.push_back(2);
    vec.push_back(3);

    //move first element to the end
    std::rotate(vec.begin(), vec.begin() + 1, vec.end());

    //print content
    for (auto e:vec) {
        std::cout << e << std::endl;
    }
}