亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++ 中"emplace_back" 與 "push_back" 的區(qū)別

 更新時間:2017年04月01日 08:40:24   投稿:lqh  
這篇文章主要介紹了C++ 中"emplace_back" 與 "push_back" 的區(qū)別的相關(guān)資料,需要的朋友可以參考下

 C++ 中"emplace_back" 與 "push_back" 的區(qū)別

emplace_backpush_back都是向容器內(nèi)添加數(shù)據(jù).

對于在容器中添加類的對象時, 相比于push_back,emplace_back可以避免額外類的復(fù)制和移動操作.

"emplace_back avoids the extra copy or move operation required when using push_back."

參見: http://en.cppreference.com/w/cpp/container/vector/emplace_back

注意下面代碼中的emplace_back和push_back的添加方式(VS2012下編譯通過):

#include <vector> 
#include <string> 
#include <iostream> 
 
struct President 
{ 
  std::string name; 
  std::string country; 
  int year; 
 
  President(std::string p_name, std::string p_country, int p_year) 
    : name(std::move(p_name)), country(std::move(p_country)), year(p_year) 
  { 
    std::cout << "I am being constructed.\n"; 
  } 
  President(President&& other) 
    : name(std::move(other.name)), country(std::move(other.country)), year(other.year) 
  { 
    std::cout << "I am being moved.\n"; 
  } 
  President& operator=(const President& other); 
}; 
 
int main() 
{ 
  std::vector<President> elections; 
  std::cout << "emplace_back:\n"; 
  elections.emplace_back("Nelson Mandela", "South Africa", 1994); //沒有類的創(chuàng)建 
 
  std::vector<President> reElections; 
  std::cout << "\npush_back:\n"; 
  reElections.push_back(President("Franklin Delano Roosevelt", "the USA", 1936)); 
 
  std::cout << "\nContents:\n"; 
  for (President const& president: elections) { 
    std::cout << president.name << " was elected president of " 
      << president.country << " in " << president.year << ".\n"; 
  } 
  for (President const& president: reElections) { 
    std::cout << president.name << " was re-elected president of " 
      << president.country << " in " << president.year << ".\n"; 
  } 
} 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • C語言實現(xiàn)電話簿管理系統(tǒng)課程設(shè)計

    C語言實現(xiàn)電話簿管理系統(tǒng)課程設(shè)計

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)電話簿管理系統(tǒng)課程設(shè)計,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 基于c++的中國象棋游戲設(shè)計與實現(xiàn)

    基于c++的中國象棋游戲設(shè)計與實現(xiàn)

    這篇文章主要介紹了基于c++的中國象棋游戲設(shè)計與實現(xiàn),主要操作是possibleMove(int?x,?int?y),通過整個棋盤每個位置上的信息、中國象棋的規(guī)則來獲得位置(x,?y)這個棋子可以移動到的位置,需要的朋友可以參考一下
    2022-02-02
  • C語言模擬實現(xiàn)庫函數(shù)詳解

    C語言模擬實現(xiàn)庫函數(shù)詳解

    C語言庫函數(shù)是把自定義函數(shù)放到庫里,是別人把一些常用到的函數(shù)編完放到一個文件里,供程序員使用,下面讓我們一起來詳細(xì)了解它
    2022-07-07
  • 整理C語言中各種類型指針的特性與用法

    整理C語言中各種類型指針的特性與用法

    這篇文章主要介紹了C語言中各種類型指針的特性與用法整理,需要的朋友可以參考下
    2016-04-04
  • 利用C++實現(xiàn)計算機(jī)輔助教學(xué)系統(tǒng)

    利用C++實現(xiàn)計算機(jī)輔助教學(xué)系統(tǒng)

    我們都知道計算機(jī)在教育中起的作用越來越大。這篇文章主要為大家詳細(xì)介紹了如何利用C++編寫一個計算機(jī)輔助教學(xué)系統(tǒng),感興趣的可以了解一下
    2023-05-05
  • Qt?http編程之nlohmann?json庫使用詳解

    Qt?http編程之nlohmann?json庫使用詳解

    nlohmann是一個C++的JSON庫,它提供了方便的方式來解析、生成和操作JSON數(shù)據(jù),這篇文章主要為大家介紹了nlohmann?json庫的簡單使用,希望對大家有所幫助
    2024-04-04
  • 最新C語言中g(shù)etchar的使用

    最新C語言中g(shù)etchar的使用

    getchar()是在輸入緩沖區(qū)順序讀入一個字符(包括空格、回車和Tab) ,getchar()是stdio.h中的庫函數(shù),它的作用是從stdin流中讀入一個字符,本文給大家介紹getchar的使用,感興趣的朋友跟隨小編一起看看吧
    2022-12-12
  • C++模擬實現(xiàn)string類的實例代碼

    C++模擬實現(xiàn)string類的實例代碼

    這篇文章主要給大家介紹了C++如何模擬實現(xiàn)string類,文章通過代碼示例講解的非常詳細(xì),有完整的實現(xiàn)過程,具有一定的參考價值,需要的朋友可以參考下
    2023-08-08
  • C++日期類(Date)實現(xiàn)的示例代碼

    C++日期類(Date)實現(xiàn)的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C++語言實現(xiàn)日期類(Date),可以實現(xiàn)確定某年某月有多少天、打印日期等功能,感興趣的可以了解一下
    2022-07-07
  • C語言實現(xiàn)學(xué)生選課系統(tǒng)

    C語言實現(xiàn)學(xué)生選課系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)學(xué)生選課系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02

最新評論