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
广告