国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++11 emplace

2019-11-11 06:41:24
字體:
供稿:網(wǎng)友

emplace操作是C++11新特性,新引入的的三個(gè)成員emlace_front、empace 和 emplace_back,這些操作分別對(duì)應(yīng)push_front、insert 和push_back,允許我們將元素放在容器頭部、一個(gè)指定的位置和容器尾部,而他們之間卻有一些不同,emplace*等操作根據(jù)參數(shù)執(zhí)行相應(yīng)的構(gòu)造函數(shù),如果傳入的參數(shù)為容器元素類型則執(zhí)行拷貝構(gòu)造(這點(diǎn)和后三則相同),后三者在執(zhí)行時(shí)會(huì)調(diào)用拷貝構(gòu)造或則賦值運(yùn)算符。

如下我們有一個(gè)類定義如下:

class emTest {public: emTest():data(0){ cout << "emTest()" << endl; } emTest(int data):data(data) { cout << "emTest(int)" << endl; } ~emTest() { cout << "~emTest()" << endl; } emTest(const emTest& that) { cout << "emTest(&)" << endl; data = that.data; } friend ostream& Operator<< (ostream& os, const emTest& that);PRivate: int data;};ostream& operator<< (ostream& os, const emTest& that) { os << that.data; return os;}

通過類定義我們看到,有默認(rèn)構(gòu)造函數(shù),接收一個(gè)整形參數(shù)的構(gòu)造函數(shù),還有一個(gè)拷貝構(gòu)造函數(shù),咱們可以使用emplace在vector首部放置元素,使用方法如下:

//調(diào)用默認(rèn)構(gòu)造函數(shù)vec.emplace(vec.begin()); //調(diào)用接收int參數(shù)的構(gòu)造函數(shù)vec.emplace(vec.begin(), 4);//調(diào)用拷貝構(gòu)造函數(shù)emTest em;vec.emplace(vec.begin(), em);

main函數(shù)內(nèi)的測試代碼如下:

int main(){ vector<emTest> vm; vm.reserve(4); emTest et(3); cout << "------------------------------------" << endl; vm.emplace(vm.begin(), et); vm.emplace(vm.begin() + 1); vm.emplace(vm.begin() + 2, 4); for(vector<emTest>::iterator i = vm.begin(); i < vm.end(); i++){ cout<< *i; } printf("/n"); cout << "------------------------------------" << endl;}

測試輸出如下:

emTest(int)------------------------------------emTest(&) //vm.emplace(vm.begin(), et); 拷貝構(gòu)造emTest() //vm.emplace(vm.begin() + 1); 默認(rèn)構(gòu)造emTest(int) //vm.emplace(vm.begin() + 2, 4); 接收一個(gè)int參數(shù)的構(gòu)造函數(shù)304 //vector內(nèi)的元素值------------------------------------~emTest() //程序退出時(shí)釋放vector內(nèi)存空間~emTest()~emTest()~emTest()

我們對(duì)vector vm在使用push_front(vector沒有提供),insert,push_back,時(shí)不能通過傳入int來插入元素,于此同時(shí)在不同的平臺(tái)上還會(huì)有較大的可能構(gòu)造臨時(shí)對(duì)象,效率可能相對(duì)較低。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 习水县| 高邑县| 措勤县| 南溪县| 沂水县| 济宁市| 青浦区| 璧山县| 皮山县| 图们市| 贵溪市| 临江市| 高雄县| 仁化县| 盱眙县| 阳城县| 衡东县| 景泰县| 克什克腾旗| 团风县| 汝南县| 嵊州市| 康定县| 乐至县| 大新县| 汝城县| 嵊泗县| 通江县| 宁都县| 万载县| 苏尼特右旗| 张家界市| 顺昌县| 大宁县| 聂拉木县| 杭锦旗| 运城市| 运城市| 大港区| 吉木萨尔县| 乐陵市|