首页 > 代码库 > STL vector总结(三)Capacity(36)

STL vector总结(三)Capacity(36)

这里是vector的所有构造方法,成员方法的一些总结,具体的可以详看后面的链接。

public member function
<vector>

std::vector::size

  • C++98
  • C++11
size_type size() const noexcept;

返回vector中元素的个数。

这个个数是vector中实际存放的元素个数,但不一定必须等于这个vector的容量

Parameters

none

Return Value.

返回值为元素个数。

原文地址:http://blog.csdn.net/qq844352155/article/details/38517403



——————————————————————————————————————————————————————————————————

public member function
<vector>

std::vector::max_size

  • C++98
  • C++11
size_type max_size() const noexcept;

返回vector所能储存的最大的元素数目。

容器所能容纳的最大元素数目,这是系统或者库所实施的限制。但是容器不一定保证能达到该大小,有可能在还未达到该大小的时候,就已经无法继续分配任何的空间了。

Parameters

none

Return Value

容器所能容纳的最大数目的元素个数。

原文地址:http://blog.csdn.net/qq844352155/article/details/38658557




———————————————————————————————————————————————————

public member function
<vector>

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个元素,移除多余的元素(并且销毁他们)

如果n大于当前容器的大小,那么容器将会从尾部开始增长至大小n,如果指定了val的值,那么新增长的元素的值将会被初始化为val的一个拷贝,否则将会时元素值类型的默认值。

Parameters

参数
n

新容器的大小,表现为元素的个数

n是一个无符号整型.

val

val为当n大于当前容器大小需要增长时,新的元素的值为val的拷贝。

如果不特别指定,那么将使用元素类型的默认构造器构造新的元素。

其类型由vector的第一个模版参数指定。

Return Value

none
原文地址:http://blog.csdn.net/qq844352155/article/details/38522321



____________________________________________________________________________________________

public member function
<vector>

std::vector::capacity

  • C++98
  • C++11
size_type capacity() const noexcept;
返回当前为vector所分配的存储空间大小.
容量并不是必须等于数组的大小的,他们两者可能相等,也可能容量更大点,因为额外分配的空间是为了便于容纳增加元素时的需要,这可以避免每次插入时都重新分配空间。(这会导致很大的开销)
要注意的是capacity并不是vector所支持的最大容量,当容量被耗尽或者是需要比容量更多的空间时,vector会自动通过重新分配存储空间来完成增长。理论上最大的容量可以从成员方法max_size中获得。
容量可以通过调用reserve来显式指定。

Parameters

none

Return Value

返回值为当前vector所分配的内存空间。用于衡量当前vector所能存放的元素数目。
原文地址:http://blog.csdn.net/qq844352155/article/details/38517735


———————————————————————————————————————————————————
public member function
<vector>

std::vector::empty

  • C++98
  • C++11
bool empty() const;

测试vector的是否为空(size为0)

Parameters

none

Return Value

返回值为true或者false

原文地址:http://blog.csdn.net/qq844352155/article/details/38637327



———————————————————————————————————————————————————
public member function
<vector>

std::vector::reserve

void reserve (size_type n);

要求vector的容量至少能够容纳n个元素。

如果n比现在的capacity大,那么这个函数会使容器重新分配其空间使其容量达到n(或者更大)

在其他情况下,该方法不会导致重分配的情况发生,并且其容量不会受到影响。

该方法不会影响数组的大小,也不会修改其元素。

Parameters

n

vector的最小容量。

要注意capacity可能等于也可能大于n

Return Value

无返回值

如果要求的大小比max_size获得的值更大,那么将会抛出一个length_error异常.

原文地址:http://blog.csdn.net/qq844352155/article/details/38518787




——————————————————————————————————————————————————
public member function
<vector>

std::vector::shrink_to_fit

void shrink_to_fit();

请求容器降低其容量和size匹配。

该请求不具有约束力,容器可以自由地去执行其他的优化方案(capacity可以大于size)。//我查了一下网上说是该方法由编译器决定是否真正释放多余的内存,该方法值是提出请求,是否要实现由编译器说了算。

Parameters

none

Return value

none
原文地址:http://blog.csdn.net/qq844352155/article/details/38685907



___________________________________________________________________________________________



——————————————————————————————————————————————————————————————————

//总结的不好的地方请多多指导,可以在下面留言或者点击左上方邮件地址给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。

转载请注明出处:http://blog.csdn.net/qq844352155
author:天下无双

Email:coderguang@gmail.com

2014-8-27

于GDUT

——————————————————————————————————————————————————————————————————







STL vector总结(三)Capacity(36)