c.back() 使用场景
c.back()是用来访问容器的 最后一个元素。- 它 返回容器中的最后一个元素的引用,允许你直接修改容器的最后一个元素。
- 你可以通过
c.back()获取容器的最后一个元素,不需要关心容器的大小或迭代器的位置。
使用时机:
使用时机:
两者的关键区别在于,c.back() 给你容器的 实际元素,而 c.end() 是一个 标记,表示容器的结束位置。
- 当你只需要 访问或修改容器的最后一个元素 时,使用
c.back()。 - 注意:如果容器为空,调用
c.back()会导致未定义行为,所以在使用前最好确认容器不为空。#include <iostream> #include <vector> using namespace std; int main() { vector<int> v = {1, 2, 3, 4, 5}; // 获取最后一个元素 cout << "Last element: " << v.back() << endl; // 输出 5 // 修改最后一个元素 v.back() = 10; cout << "Modified last element: " << v.back() << endl; // 输出 10 return 0; }c.end()使用场景 c.end()返回的是 指向容器末尾之后位置的迭代器,它并不指向容器的实际元素。c.end()主要用于遍历容器时作为 结束条件 或者标记容器的 "past-the-end" 位置。c.end()主要用于 迭代容器,通常在for循环中用作结束条件。- 你不能直接解引用
c.end(),因为它指向容器末尾之后的位置。- 它常与
c.begin()配合使用,用于遍历容器。#include <iostream> #include <vector> using namespace std; int main() { vector<int> v = {1, 2, 3, 4, 5}; // 使用 c.end() 和 c.begin() 进行遍历 for (auto it = v.begin(); it != v.end(); ++it) { cout << *it << " "; // 输出容器中的每个元素 } cout << endl; return 0; }在这个例子中,
v.begin()返回容器的第一个元素的迭代器,v.end()返回指向容器最后一个元素之后位置的迭代器,用作遍历的终止条件。总结:
-
c.back()用于访问容器的最后一个元素。它返回对该元素的引用,可以修改该元素。- 使用场景:需要获取或修改容器最后一个元素时。
- 注意:容器为空时不能调用
c.back(),会导致未定义行为。
-
c.end()用于获取指向容器末尾后一个位置的迭代器。通常用作遍历容器的结束标志。- 使用场景:用于容器遍历,作为结束条件。
- 注意:
c.end()不能解引用,它并不指向容器中的任何元素。
- 它常与
8114

被折叠的 条评论
为什么被折叠?



