日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > 充電吧
[導(dǎo)讀]emplace操作是C++11新特性,新引入的的三個成員emlace_front、empace 和 emplace_back,這些操作構(gòu)造而不是拷貝元素到容器中,這些操作分別對應(yīng)push_front、

emplace操作是C++11新特性,新引入的的三個成員emlace_front、empace 和 emplace_back,這些操作構(gòu)造而不是拷貝元素到容器中,這些操作分別對應(yīng)push_front、insert 和push_back,允許我們將元素放在容器頭部、一個指定的位置和容器尾部。

兩者的區(qū)別?

當(dāng)調(diào)用insert時,我們將元素類型的對象傳遞給insert,元素的對象被拷貝到容器中,而當(dāng)我們使用emplace時,我們將參數(shù)傳遞元素類型的構(gòu)造函,emplace使用這些參數(shù)在容器管理的內(nèi)存空間中直接構(gòu)造元素。

一個例子

MyString.h

#ifndef?MYSTRING_H
#define?MYSTRING_H
#includeclass?MyString
{
public:
????MyString(const?char?*str?=?NULL);//?普通構(gòu)造函數(shù)
????MyString(const?MyString?&other);//?拷貝構(gòu)造函數(shù)
????~MyString(void);//?析構(gòu)函數(shù)
????MyString?&?operator?=?(const?MyString?&other);//?賦值函數(shù)
private:
????char?*m_data;//?用于保存字符串
};

#endif?//?MYSTRING_H

MyString.cpp

#include?"MyString.h"
#include#include//普通構(gòu)造函數(shù)
MyString::MyString(const?char?*str)
{
????if?(str?==?NULL)
????{
????????m_data?=?new?char[1];
????????*m_data?=?'