C++ vector::end() 函式



C++ vector::end() 函式用於獲取指向向量最後一個元素之後的迭代器。<vector> 標頭檔案包含 end() 函式。end() 函式的時間複雜度為常數。

如果嘗試解除對返回的向量的引用,則它將丟擲一個垃圾值。要獲取最後一個元素,我們必須從返回的迭代器中減去 1,即向後移動一個位置。如果向量為空,則無法解除對迭代器的引用。

語法

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

iterator end() noexcept;
const_iterator end() const noexcept;

引數

它不接受任何型別的引數。

示例 1

讓我們考慮以下示例,我們將使用 end() 函式。

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

int main() {
   vector<int> myvector = {11,22,33,44};
   vector<int> empty_vec = {};
   auto x = myvector.end();
   cout << *(x - 1);
   return 0;
}

輸出

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

44

示例 2

考慮另一種情況,我們將使用 push_back() 函式插入元素並應用 end() 函式。

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

int main(){
   vector<int> myvector;
   myvector.push_back(12);
   myvector.push_back(23);
   vector<int>::iterator x;
   x = myvector.end()-1;
   cout << "Result : " << *x << endl;
   return 0;
}

輸出

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

Result : 23

示例 3

在以下示例中,我們將使用字串值並應用 end() 函式。

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

int main (){
   vector<string> tutorial{"JIM","JAM","JUM"};
   vector<string>::iterator x;
   x = tutorial.end();
   x--;
   cout<<*x<<" ";
   x--;
   cout<<*x<<" ";
   x--;
   cout<<*x<<" ";
   return 0;
}

輸出

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

JUM JAM JIM
廣告