日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

43.StrVec类:std::move调用移动构造函数的一个实例

發布時間:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 43.StrVec类:std::move调用移动构造函数的一个实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

自定義一個strvec類,在內存不夠,開辟新的內存存放元素的時候(也即是reallocate),使用移動操作!而非拷貝!

using namespace std;class strvec { private:static allocator<string>alloc;void chk_n_alloc() { if (size() == capacity()) reallocate(); }void reallocate();pair<string*, string*> alloc_n_copy(const string*, const string*);void free();string* elements;string* first_free;string* cap; public:strvec() :elements(nullptr), first_free(nullptr), cap(nullptr) {}strvec(const strvec&);strvec& operator=(const strvec&);~strvec();void push_back(const string*);size_t size() const { return first_free - elements; }size_t capacity()const { return cap - elements;}string* begin() const { return elements; }string* end() const { return first_free; }};void strvec::push_back(const string*s) {chk_n_alloc();alloc.construct(first_free++, s); }pair<string*, string*> strvec::alloc_n_copy(const string*a, const string*b) {auto data = alloc.allocate(b - a);return{ data,uninitialized_copy(a,b,data) }; }void strvec::free() {if (elements){for (auto p = first_free; p != elements;) alloc.destroy(p--);alloc.deallocate(elements, cap - elements);} }strvec::strvec(const strvec&s) {auto newdata = alloc_n_copy(s.begin(), s.end());elements = newdata.first;first_free = cap = newdata.second; }strvec::~strvec() { free(); }strvec& strvec::operator=(const strvec&s) {auto data = alloc_n_copy(s.begin(), s.end());free();elements = data.first;cap = first_free = data.second;return *this; }void strvec::reallocate() {auto newcap = size() ? 2 * size() : 1;auto newdata = alloc.allocate(newcap);auto dest = newdata;auto elem = elements;for (size_t i = 0; i != size(); i++){alloc.construct(dest++, std::move(*elem++));}free();elements = newdata;first_free = dest;cap = elements + newcap; }

?

總結

以上是生活随笔為你收集整理的43.StrVec类:std::move调用移动构造函数的一个实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产熟妇一区二区三区四区 | 日本美女视频一区 | 色av一区二区 | 亚洲欧美日韩免费 | 超碰三级 | 男女精品视频 | 欧美视频亚洲视频 | 日韩一级在线观看 | 欧美91成人网 | 播色网| 亚洲视频www | 永久免费看成人av的动态图 | 极品少妇xxx | 欧美变态绿帽cuckold | 一起草国产 | 亚洲精品久久久久久动漫器材一区 | 国产一区二区三区免费观看视频 | 欧美激情欧美激情在线五月 | 乐播av一区二区三区 | 黄色免费在线网址 | av解说在线观看 | 亚洲成人视屏 | 大陆农村乡下av | 国产第一区第二区 | 欧美日韩国产免费一区二区三区 | 天天躁日日躁狠狠躁av麻豆 | 一本久道久久综合无码中文 | 欲涩漫入口免费网站 | 人妻无码中文字幕 | 亚洲4区 | 黄色a大片| 国产视频欧美视频 | 国产精品久久福利 | 岛国精品在线播放 | 国产黄色一级网站 | 观看毛片 | 色呦网站 | 精品乱码一区内射人妻无码 | 在线观看av的网站 | 视频在线播 | www操操操| 久久av导航 | 野外(巨肉高h) | 午夜在线视频免费 | 欧美性受xxxx黑人猛交88 | 天天综合网在线 | 一本久道久久综合无码中文 | 中日韩午夜理伦电影免费 | 少妇视频在线播放 | 国产精选中文字幕 | xxx在线播放 | 在线视频麻豆 | 人与动物av | 亚洲精品美女视频 | 青青草综合| 变态另类丨国产精品 | 顶臀精品视频www | www.天天干.com | 亚洲高清资源 | 给我看免费高清在线观看 | 三年中文在线观看免费观看 | 国产亚洲精品久久久久久777 | 免费在线观看污 | 国产欧美在线一区 | 日韩一级免费毛片 | 精品二区视频 | 精品免费视频一区二区 | 国产1页 | 一级特级片 | 亚洲中文一区二区三区 | 日韩一卡二卡三卡四卡 | 国产玖玖视频 | 在线看亚洲| 性福宝av | 亚洲成人欧美 | 北条麻妃在线一区 | 国产男女精品 | 久久久久高潮 | 美攻壮受大胸奶汁(高h) | 日韩成人激情视频 | 极品尤物魔鬼身材啪啪仙踪林 | 丝袜性爱视频 | 狠狠艹av | 日韩精品短片 | 欧美做受视频 | 欧美国产中文字幕 | a在线观看免费 | 国产av无毛 | 色偷偷噜噜噜亚洲男人的天堂 | 99在线精品免费视频 | 亚洲国产成人精品激情在线 | 亚洲精品色午夜无码专区日韩 | 樱花视频在线免费观看 | 激情婷 | 国产不卡av在线 | 土耳其xxxx性hd极品 | 久久久精品在线观看 | 黄色激情在线观看 | 农村脱精光一级 |