关于C++ stl的size()方法的坑
Posted 夜雨闻铃风声起丶霞叶送秋月色明
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于C++ stl的size()方法的坑相关的知识,希望对你有一定的参考价值。
切忌把该方法用于运算中,最好拿一个数来存你要的容器的大小,因为该方法返回的是一个size_type类型的无符号整型! 当你使用该方法参与运算时,譬如有一个vector num, num.size()-1,当vector的大小为0时,得到的运算结果不是-1,而是一个非常大的数,因为alu没有减法,运算时它会把-1当成无符号整型处理,而-1补码被当成无符号整型后与0相加会变成一个超级大的数,导致运算出错!
在这里,数组大小为4,4-8结果变成了一个非常大的数,所以要记住这个坑。
以上是关于关于C++ stl的size()方法的坑的主要内容,如果未能解决你的问题,请参考以下文章
关于 C++ 和 stl 向量的 begin() 的“需要左值作为增量操作数”