日韩性视频-久久久蜜桃-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调用移动构造函数的一个实例的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧美黑人巨大xxx极品 | 东北少妇露脸无套对白 | aaaa黄色 | 91在线欧美 | h视频免费在线 | 日本在线不卡一区 | 偷操 | 波多野结av衣东京热无码专区 | 欧美日韩免费在线观看 | 国产精品18久久久久久无码 | 午夜福利电影 | 97视频一区二区 | 免费又黄又爽又猛大片午夜 | 精品久久精品 | 91精品国产高清一区二区三蜜臀 | 二级黄色录像 | 新x8x8拨牐拨牐永久免费影库 | 国产黄色大片在线观看 | 日韩精品理论 | 欧美日韩一区二区三区在线 | 色就操| 风韵丰满熟妇啪啪区老熟熟女 | 精品一区二区三区在线免费观看 | 亚洲熟女乱色一区二区三区久久久 | www.国产精品 | 三级av网站 | 一区二区在线不卡 | 日韩无| 极品销魂美女一区二区 | 久久一区二区视频 | 国产精品69久久 | 韩日a级片 | 欧美xxxxbbb| 久久裸体视频 | 国产亚洲精品久久久久动 | 黑人3p波多野结衣在线观看 | 青青成人网 | 黄色一几片| 女人av| 国产一区二 | 日韩中文字幕在线播放 | 精品久久久久久久久久久久久久久 | v片在线免费观看 | 欧美贵妇videos办公室 | 欧美少妇激情 | 日韩一级完整毛片 | 久草久操 | 暖暖日本视频 | 久久成人国产 | 高级毛片 | 欧美丰满熟妇bbbbbb百度 | xxx在线播放 | 99精品福利| 欧美精品久久天天躁 | 91精品婷婷国产综合久久竹菊 | 亚洲视频一区二区三区 | 国产综合自拍 | 久久久经典 | 哺乳期给上司喂奶hd | 我们俩电影网mp4动漫官网 | 黄色特级一级片 | 欧美高清一区二区 | 亚洲精品一区二区18漫画 | 九九色在线 | www.黄色av| 久热热| 国产啊啊啊啊 | 色婷婷伊人 | 久久资源365 | 青青国产精品 | 葵司免费一区二区三区四区五区 | 国产一二区视频 | 日韩av一区在线观看 | 成人啪啪18免费游戏链接 | 在线国产视频一区 | 亚洲女同视频 | 黄网址在线 | 三上悠亚在线播放 | 婷婷色在线视频 | 男生和女生一起差差差很痛的视频 | 亚洲图片 自拍偷拍 | 日韩精品999| 精品一区二区不卡 | 国产-第1页-浮力影院 | www.国产.com| 免费在线观看av的网站 | 成年人一级黄色片 | 亚洲人成无码网站久久99热国产 | 爱爱视频网| 国产精品视频一区二区三 | 日韩欧美片 | 久久久久久国产精品一区 | 床上激情网站 | va在线视频 | 四级毛片 | 95在线视频 | 啊灬啊灬啊灬秀婷 | 2020自拍偷拍 | 91国产在线播放 |