C++ vector::emplace_back() 函式



C++ vector::emplace_back() 函式透過新增新元素來擴充套件向量。如果需要額外的空間,則會發生重新分配。與動態陣列類似,向量可以在新增或刪除專案時自動調整大小。emplace_back() 函式的時間複雜度為常數。

容器管理向量儲存。此外,可以使用 emplace_back() 函式將元素新增到向量的末尾。它不會生成臨時物件。物件直接在向量中建立。因此,提高了效率。emplace_back() 函式的複雜度為常數。

語法

以下是 C++ vector::emplace_back() 函式的語法:

void emplace_back (Args&&... args);

引數

args - 它表示用於構造新元素的傳參。

示例 1

讓我們考慮以下示例,我們將使用與 emplace_back() 函式一起使用的整數向量。

#include <iostream>
#include <vector>
using namespace std;

int main(){
   vector<int>myvector;
   myvector.emplace_back(11);
   myvector.emplace_back(22);
   myvector.emplace_back(33);
   for (auto x = myvector.begin(); x != myvector.end(); ++x)
      cout<< ' ' << *x;
   return 0;
}

輸出

當我們編譯並執行上述程式時,將產生以下結果:

11 22 33

示例 2

考慮另一種情況,我們將獲取字串向量並將其與 emplace_back() 函式一起使用。

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main(){
   vector<string>myvector;
   myvector.emplace_back("Welcome");
   myvector.emplace_back("To");
   myvector.emplace_back("The World.!");
   for(auto x =myvector.begin(); x != myvector.end(); ++x)
      cout<< ' ' << *x;
   return 0;
}

輸出

執行上述程式後,將產生以下結果:

Welcome To The World.!

示例 3

在以下示例中,我們將使用字元向量和 emplace_back() 函式。

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main(){
   vector<char>myvector;
   myvector.emplace_back('T');
   myvector.emplace_back('P');;
   for(auto x =myvector.begin(); x != myvector.end(); ++x)
      cout<< ' ' << *x;
   return 0;
}

輸出

執行上述程式後,將產生以下結果:

T P
廣告