std::vector中 begin()、end()、front()、back()的区别
前言之前看见std::vector 容器的begin()、end()、front()、back()用法,了解begin()和end(),不了解front()和back()方法,今天没事查了下博客,验证了下,留个随手笔记。一、begin函数函数原型:iterator begin();const_iterator begin();功能:返回一个当前vector容器中起始元素的迭代器。二、end函数函数
·
前言
之前看见std::vector 容器的begin()、end()、front()、back()用法,了解begin()和end(),不了解front()和back()方法,今天没事查了下博客,验证了下,留个随手笔记。
一、begin函数
函数原型:
iterator begin();
const_iterator begin();
功能:
返回一个当前vector容器中起始元素的迭代器。
二、end函数
函数原型:
iterator end();
const_iterator end();
功能:
返回一个当前vector容器中末尾元素的迭代器。
三、front函数
函数原型:
reference front();
const_reference front();
功能:
返回当前vector容器中起始元素的引用。
四、back函数
函数原型:
reference back();
const_reference back();
功能:
返回当前vector容器中末尾元素的引用。
五、测试
vector.cc 源文件:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<char> v1;
vector<char>::iterator iter1;
vector<char>::iterator iter2;
v1.push_back('m');
v1.push_back('n');
v1.push_back('o');
v1.push_back('p');
cout << "v1.front() = " << v1.front() << endl;
cout << "v1.back() = " << v1.back() << endl;
iter1 = v1.begin();
cout << *iter1 << endl;
iter2 = v1.end()-1;
/**\
* 注意v1.end()指向的是最后一个元素的下一个位置,所以访问最后一个元素的正确操作为:v1.end() - 1;
\**/
cout << *iter2 << endl;
return 0;
}
CMakeLists.txt 源文件:
cmake_minimum_required(VERSION 2.8.3)
project(vector_test)
add_executable(vector vector.cc)
源文件和CMakeLists.txt 放在同一文件夹下,运行:
mkdir build
cd build
cmake ../
make
./vector
输出:
ziqi@ziqi-gloway:~/Desktop/test$ mkdir build
ziqi@ziqi-gloway:~/Desktop/test$ cd build/
ziqi@ziqi-gloway:~/Desktop/test/build$ cmake ../
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ziqi/Desktop/test/build
ziqi@ziqi-gloway:~/Desktop/test/build$ make
Scanning dependencies of target vector
[ 50%] Building CXX object CMakeFiles/vector.dir/vector.cc.o
[100%] Linking CXX executable vector
[100%] Built target vector
ziqi@ziqi-gloway:~/Desktop/test/build$ ./vector
v1.front() = m
v1.back() = p
m
p
参考:
胡涂胡话的博客
更多推荐
已为社区贡献1条内容
所有评论(0)