首页 > 代码库 > STL vector总结(三)Capacity(36)
STL vector总结(三)Capacity(36)
这里是vector的所有构造方法,成员方法的一些总结,具体的可以详看后面的链接。
std::vector::size
- C++98
- C++11
size_type size() const noexcept;
返回vector中元素的个数。
这个个数是vector中实际存放的元素个数,但不一定必须等于这个vector的容量。
Parameters
noneReturn Value.
返回值为元素个数。原文地址:http://blog.csdn.net/qq844352155/article/details/38517403
——————————————————————————————————————————————————————————————————
std::vector::max_size
- C++98
- C++11
size_type max_size() const noexcept;
返回vector所能储存的最大的元素数目。
容器所能容纳的最大元素数目,这是系统或者库所实施的限制。但是容器不一定保证能达到该大小,有可能在还未达到该大小的时候,就已经无法继续分配任何的空间了。
Parameters
noneReturn Value
容器所能容纳的最大数目的元素个数。
原文地址:http://blog.csdn.net/qq844352155/article/details/38658557
———————————————————————————————————————————————————
std::vector::resize
- C++98
- C++11
void resize (size_type n);
void resize (size_type n, const value_type& val);
调整容器使其包含n个元素。
如果n小于当前的容器大小(通过size获得,而不是capacity),那么将会只是保留前n个元素,移除多余的元素(并且销毁他们)
Parameters
- n
新容器的大小,表现为元素的个数
n是一个无符号整型.
- val
val为当n大于当前容器大小需要增长时,新的元素的值为val的拷贝。
如果不特别指定,那么将使用元素类型的默认构造器构造新的元素。
其类型由vector的第一个模版参数指定。
Return Value
none原文地址:http://blog.csdn.net/qq844352155/article/details/38522321
std::vector::capacity
- C++98
- C++11
size_type capacity() const noexcept;
要注意的是capacity并不是vector所支持的最大容量,当容量被耗尽或者是需要比容量更多的空间时,vector会自动通过重新分配存储空间来完成增长。理论上最大的容量可以从成员方法max_size中获得。
容量可以通过调用reserve来显式指定。
Parameters
noneReturn Value
返回值为当前vector所分配的内存空间。用于衡量当前vector所能存放的元素数目。原文地址:http://blog.csdn.net/qq844352155/article/details/38517735
std::vector::empty
- C++98
- C++11
bool empty() const;
测试vector的是否为空(size为0)
Parameters
noneReturn Value
返回值为true或者false
原文地址:http://blog.csdn.net/qq844352155/article/details/38637327std::vector::reserve
void reserve (size_type n);
要求vector的容量至少能够容纳n个元素。
如果n比现在的capacity大,那么这个函数会使容器重新分配其空间使其容量达到n(或者更大)
在其他情况下,该方法不会导致重分配的情况发生,并且其容量不会受到影响。
该方法不会影响数组的大小,也不会修改其元素。
Parameters
- n
vector的最小容量。
要注意capacity可能等于也可能大于n
Return Value
无返回值
如果要求的大小比max_size获得的值更大,那么将会抛出一个length_error异常.
std::vector::shrink_to_fit
void shrink_to_fit();
请求容器降低其容量和size匹配。
该请求不具有约束力,容器可以自由地去执行其他的优化方案(capacity可以大于size)。//我查了一下网上说是该方法由编译器决定是否真正释放多余的内存,该方法值是提出请求,是否要实现由编译器说了算。
Parameters
noneReturn value
none___________________________________________________________________________________________
——————————————————————————————————————————————————————————————————
//总结的不好的地方请多多指导,可以在下面留言或者点击左上方邮件地址给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。
转载请注明出处:http://blog.csdn.net/qq844352155
author:天下无双
Email:coderguang@gmail.com
2014-8-27
于GDUT
——————————————————————————————————————————————————————————————————
STL vector总结(三)Capacity(36)