gpt4 book ai didi

c++ - 一种交换 vector 的方法,可能吗?

转载 作者:行者123 更新时间:2023-11-28 05:40:55 31 4
gpt4 key购买 nike

<分区>

在 C++98 中,这是我想要做的(这不起作用,因为 _M_start 等是私有(private)成员):

void vectormove(std::vector<int>& a, std::vector<int>& b)
{
a._M_impl._M_start = b._M_impl._M_start;
a._M_impl._M_finish = b._M_impl._M_finish;
a._M_impl._M_end_of_storage = b._M_impl._M_end_of_storage;
}

这就是我想要的方式

//vectors are predefined already
std::vector<int> a;
std::vector<int> b(10000000,20);

//in later part of code
//a=b; //expensive copy
//std::swap(a,b); //inexpensive swap
vectormove(a,b); //i need an inexpensive one way swap instead

我可能通过松散地使用复制、移动和交换来破坏术语,但我对这个主题没有更好的把握。我希望我能够传达我的意图。

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com