STL vector总结(三)Capacity(36)

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

public member function

<vector>

std::vector::size

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

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

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

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

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:[email protected]

2014-8-27

于GDUT

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

时间: 2024-10-15 06:38:01

STL vector总结(三)Capacity(36)的相关文章

C++ STL vector容器学习

STL(Standard Template Library)标准模板库是C++最重要的组成部分,它提供了一组表示容器.迭代器.函数对象和算法的模板.其中容器是存储类型相同的数据的结构(如vector,list, deque, set, map等),算法完成特定任务,迭代器用来遍历容器对象,扮演容器和算法之间的胶合剂. 模板类vector 在计算中,矢量(vector)对应数组,它的数据安排以及操作方式,与array非常类似.在C++中,使用vector模板类时,需要头文件包含#include<v

STL vector用法介绍

介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用.通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了.   Vector总览 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象

C++ stl vector介绍

转自: STL vector用法介绍 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用.通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了.   Vector总览 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是

STL vector

author:Donald-hu    theme:STL vector 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用.通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了.   Vector总览 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.v

STL vector使用方法介绍

介绍 这篇文章的目的是为了介绍std::vector,怎样恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用.通过阅读这篇文章读者应该可以有效地使用vector容器,并且应该不会再去使用C类型的动态数组了.   Vector总览 vector是C++标准模板库中的部分内容,它是一个多功能的,可以操作多种数据结构和算法的模板类和函数库.vector之所以被觉得是一个容器,是由于它可以像容器一样存放各种类型的对象

STL vector用法介绍(转)

介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用.通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了.   Vector总览 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象

STL vector的N种构造方式

1 使用默认无参的构造函数进行构造 vector<int> intVect; 观察内存可以看到生成一个带有0个元素的vector时内存中_Myfirst _Mylast _Myend的值均为0,说明vector对象并没有在堆中分配任何存储空间,仅仅是在栈中分配了16字节存储vecotr对象元素,在这16字节中前4字节如果没猜错,应该是一个虚表指针. Vecotr模版类有三个成员变量 _Myfirst  记录在堆分配数组的首地址 _Mylast  记录在堆中分配数组中最后一个有效数据的下一字节地

STL ——vector 学习

STL简介 C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列), lists(链表), 和 stacks(栈)等.  C++ STL 提供给程序员以下三类数据结构的实现: 标准容器类   顺序性容器  vector 从后面快速的插入与删除,直接访问任何元素  deque 从前面或后面快速的插入与删除,直接访问任何元素 list 双链表,从任何地方快速插入与删除   关联容器  

STL vector的介绍(1)

尝试下翻译STL里面的一些容易和算法.四级过了,六级刚考.顺便练练自己的英语水平,翻译的不好的地方请大神多多指教哈,方便我改正. 原来均来自:http://www.cplusplus.com/ template < class T, class Alloc = allocator<T> > class vector; // generic template Vector Vectors are sequence containers representing arrays that

STL vector的构造函数和析构函数(2)

原文来自:点击打开链接 译文: public member function vector的构造器:这里我只翻译C++11的,C++98的就不翻译了. 构造器原型: <vector> std::vector::vector C++98 C++11 default (1) explicit vector (const allocator_type& alloc = allocator_type()); fill (2) explicit vector (size_type n); vec