前言

之前看见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 buildziqi@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/buildziqi@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 vectorziqi@ziqi-gloway:~/Desktop/test/build$ ./vector
v1.front() = m
v1.back() = p
m
p

参考:
胡涂胡话的博客

std::vector中 begin()、end()、front()、back()的区别相关推荐

  1. JAVA中vector是否存在数据_如何找出std :: vector中是否存在项目?

    我要做的就是检查向量中是否存在某个元素,因此我可以处理每种情况. if ( item_present ) do_this(); else do_that(); #1楼 您可以尝试以下代码: #incl ...

  2. C++ Vector中size()和capacity()区别

    简单而言,size()指的是当前Vector中存放元素的大小,即他当前存放了多少个元素,capacity()指的是他能够存放多少个元素. 两个方法可以控制存放元素的大小和最大容纳数量 reserve可 ...

  3. vector中begin(),end()和front(),back()的区别

    一.begin函数 函数原型: iterator begin(); const_iterator begin(); 功能: 返回一个当前vector容器中起始元素的迭代器. 二.end函数 函数原型: ...

  4. std::vector中resize()和reserve()区别

    在STL容器中vector用的还是比较多的,但是在使用时,会对resize()和reserve()的使用产生迷惑,现在就对这一情况做个对比: resize():改变的是size()与capacity( ...

  5. C++中标准模板库std::vector的实现

    以下实现了C++标准模板库std::vector的部分实现,参考了 cplusplus. 关于C++中标准模板库std::vector的介绍和用法可以参考 https://blog.csdn.net/ ...

  6. STL vector中的begin方法(3)

    原文地址:http://www.cplusplus.com/reference/vector/vector/begin/ public member function <vector> s ...

  7. [转载] C++ std::vector指定位置插入

    参考链接: C++ : Vector删除所有指定的元素 使用vector,必须加上:#include <vector> 1.初始化vector,一般有这几种方式: std::vector& ...

  8. std::vector介绍

    文章来源:http://blog.csdn.net/willoj/article/details/2252543 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算 ...

  9. c++ std vector用法介绍

    c++ vector 一部分内容来自:http://blog.csdn.net/phoebin/article/details/3864590:http://www.cnblogs.com/wang7 ...

最新文章

  1. c#学习之基础篇(filter 筛选器)
  2. jquery查找元素方法示例
  3. 别在最吃苦的年龄选择了潇洒
  4. IoT实时数据可视化方案(进阶版):Worldmap Panel使用详解及使用Node-RED进行流程管理...
  5. 系统账号自动退出时长哪里设置
  6. 酷柚易汛进销存开源版升级来啦
  7. 热烈祝贺方正璞华两款产品入选2021年度江苏省工业软件优秀产品和应用解决方案拟推广名单
  8. 100个开源C/C++项目中的bugs(一)数组和字符串处理的错误
  9. 【风马一族_php】数组函数
  10. 佛祖保佑代码无bug图片_佛祖保佑,永无BUG
  11. Python开发——做一个简单的【表白墙】网站
  12. 宣州谢脁楼饯别校书叔云
  13. 【matplotlib教程】绘图样式,文本线型、轴刻度
  14. 【LaTex】数学建模国赛中使用Latex排版经验分享(非常好用)
  15. 华盛顿大学西雅图 计算机科学 申请条件,华盛顿大学西雅图分校研究生申请条件有哪些?...
  16. 联发科、联芯TD合作后期走势分析
  17. Python爬虫新手教程:微医挂号网医生数据抓取!
  18. 今日金融词汇---法定许可护城河
  19. java的 入门注意
  20. python中的turtle库中引用_python turtle库学习笔记

热门文章

  1. 【Linux命令】《鸟哥Linux基础》第十六章 进程管理与SELinux初探
  2. vue中使用antv/G6完成流程图
  3. GNU Radio系列教程(三):初级篇之GNU Radio GRC流图
  4. adxl345取出值怎么算角度_改了别人的程序和一些自己的研究,用ADXL345测量角度成功...
  5. 一个菜鸟对建站的一点看法
  6. 汽车系统升级更新,诺威达k2201升级包,2022年11月7日,刚更新的
  7. 高端生活变革之路:“速食文化”到“独享宴会”
  8. ReSharper:著名的VS代码生成工具
  9. 什么是Vue响应式原理?手把手教你
  10. 计算机芯片记忆方法,神奇的万能记忆芯片作文