C++-STL
个人主页:云端筑梦狮
一.STL
#include <iostream>
#include <vector>using namespace std;int main() {// int a[6] = {9,8,7,6,5,4};// 扩容vector<int> v = {2,0,2,4};cout << v.capacity() <<endl;v.push_back(7);cout << v.capacity() <<endl;//vector四个常用的位置cout << "begin:-> "<<*v.begin()<<endl; //*代表迭代器指向的值cout << "end:-> "<<*(v.end()-1)<<endl;cout << "front:"<<v.front()<<endl;cout << "back:"<<v.back()<<endl; return 0;
}
1. 扩容操作
定义操作vector<int> v = {2,0,2,4};
cout << v.capacity() <<endl; 取出容器的大小
v.push_back(7); 扩充一个值为7的元素到最后一位
2.vector 四个常用的位置和迭代器
-
v.begin()
这是容器的迭代器方法,返回指向容器第一个元素的迭代器,*v.begin()
表示获取迭代器所指向的元素值(即容器的第一个元素) -
v.end()
返回指向容器最后一个元素之后位置的迭代器(注意不是最后一个元素),以v.end() - 1
才指向最后一个元素,*(v.end() - 1)
就是获取最后一个元素值 -
v.front()
这是容器的成员函数,直接返回容器中第一个元素的值, 效果等同于*v.begin()
,但更简洁直观 -
v.back()
直接返回容器中最后一个元素的值,效果等同于*(v.end() - 1)
3. 区别
-
v.begin()
和v.end()
返回的是迭代器(iterator),需要通过解引用运算符*
才能获取元素值 v.front()
和v.back()
直接返回容器中元素的引用,可以直接使用- 迭代器(
begin()
/end()
)更通用,可用于遍历容器、作为算法参数(如std::sort(v.begin(), v.end())
) front()
/back()
是专为获取首尾元素设计的便捷方法,代码更简洁
- 迭代器(
-
end()
不指向最后一个元素,而是指向最后一个元素的下一个位置,因此需要end()-1
才能获取最后一个元素的迭代器