博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ STL-vector
阅读量:7008 次
发布时间:2019-06-28

本文共 2648 字,大约阅读时间需要 8 分钟。

1.vector基础

vector是同一类型对象的集合   每一个对象都对应了一个整数的索引值  和string一样  

我们在使用vector之前   都要包含相应的头文件 

#include 
using std::vector;

vector的定义

vector
ivec;//T为保存对象的类型 可以是其他的各种类型 结构体也行 ivec是创建的容器名称

2.vector的定义与初始化

vector
v1; //创建一个空的容器 vector
v2(n,i); //创建一个vector容器 其中包括n个值为i的元素 vector
v3(v2); //创建一个v3 是v2的副本 vector
v4(n); //创建一个有初始化的元素的n个副本

3.vectot的增长

vector对象的重要属性在于   vector可以在运行时高速的添加元素   

因为vector增长的效率高  所以在元素值已知的条件下   最好是动态的添加元素

vector在动态添加元素的过程中   如果发现分配的空间不够   会成倍的扩增空间

所以在已知元素的最大个数的情况下  我们可以设置vector的大小

vector<T>v(n);    将容器的大小定为n   以防止其浪费过多的存储空间

4.vector对象的操作

v.empty();    //判断容器v是否为空    v.size();     //返回容器v的大小    v.push_back(t); //往容器v中添加元素t    v[i]    //返回容器v中索引值为i的元素    v1==v2  //判断容器v1,v2是否相等    v1=v2   //将容器v2复制给予v1

5.vector的下标操作

一般情况之下  我们可能会使用int型的变量来表示vector的下标   来遍历vector

for(int i=0;i

但是我并不推荐你们使用int型去遍历     可以的话  应该养成使用vector<T>::size_type类型的变量去遍历

for(vector
::size_type ix=0;ix!=v.size();++ix)

6.迭代器简介

除了使用下标来访问vector对象的元素外    标准库还提供了一种访问元素的方法   使用迭代器   迭代器是一种检查容器中元素并遍历元素的数据类型

 

标准库为每一种标志容器提供了一个迭代器类型

下面简单的讲解一下vector迭代器的使用   其他的迭代器使用方法基本差不多

迭代器的定义:

vector
::iterator iter;

这条语句定义了一个名为iter的迭代器      其数据类型是vector<T>定义的iterator类型

这里附加讲一下  vector容器的begin与end操作

v.begin();    v.end();    for(iter=v.begin();iter!=v.end();++iter)

begin与end用于返回迭代器    begin返回的是容器的开始位置    end返回的接受位置

所以我们可以使用上面这种循环去遍历vector容器

同时我们可以使用迭代器直接修改日期中的值

*iter=k;*iter->num=k;

如果容器保存的是数字字符类型的元素   直接像上面第一行一样修改值    是结构体的话  就参照第二行

稍微提一下   存在const的迭代器   这种迭代器只有读的权力   不能改写容器中的值

vector
::const_iterator iter;

 

1.vector基础

vector是同一类型对象的集合   每一个对象都对应了一个整数的索引值  string一样  

我们在使用vector之前   都要包含相应的头文件 

#include <vector>

using std::vector;

vector的定义

vector<T>ivec;//T为保存对象的类型   可以是其他的各种类型   结构体也行     ivec是创建的容器名称

2.vector的定义与初始化

    vector<T>v1;      //创建一个空的容器

    vector<T>v2(n,i);  //创建一个vector容器  其中包括n个值为i的元素

    vector<T>v3(v2);   //创建一个v3   v2的副本

    vector<T>v4(n);   //创建一个有初始化的元素的n个副本

3.vectot的增长

vector对象的重要属性在于   vector可以在运行时高速的添加元素   

因为vector增长的效率高  所以在元素值已知的条件下   最好是动态的添加元素

vector在动态添加元素的过程中   如果发现分配的空间不够   会成倍的扩增空间

所以在已知元素的最大个数的情况下  我们可以设置vector的大小

vector<T>v(n);    将容器的大小定为n   以防止其浪费过多的存储空间

4.vector对象的操作

    v.empty();    //判断容器v是否为空

    v.size();     //返回容器v的大小

    v.push_back(t); //往容器v中添加元素t

    v[i]    //返回容器v中索引值为i的元素

    v1==v2  //判断容器v1,v2是否相等

    v1=v2   //将容器v2复制给予v1

5.vector的下标操作

一般情况之下  我们可能会使用int型的变量来表示vector的下标   来遍历vector

for(int i=0;i<v.size();++i)

{                        }

但是我并不推荐你们使用int型去遍历     可以的话  应该养成使用vector<T>::size_type类型的变量去遍历

for(vector<T>::size_type ix=0;ix!=v.size();++ix)

{                        }

6.迭代器简介

除了使用下标来访问vector对象的元素外    标准库还提供了一种访问元素的方法   使用迭代器   迭代器是一种检查容器中元素并遍历元素的数据类型

标准库为每一种标志容器提供了一个迭代器类型

 

转载于:https://www.cnblogs.com/52why/p/7563202.html

你可能感兴趣的文章
Hadoop之父Doug Cutting
查看>>
关于socket阻塞与非阻塞情况下的recv、send、read、write返回值---部分内容可能不确切,待讨论...
查看>>
Matlab随笔之插值与拟合(上)
查看>>
Socket 通信(基础原理、实时聊天系统雏形)
查看>>
理解和使用WPF 验证机制
查看>>
tensorflow 在加载大型的embedding模型参数时,会遇到cannot be larger than 2GB
查看>>
Flutter的教程:ListView
查看>>
xxl-job安装教程
查看>>
SpringBoot(十八)@value、@Import、@ImportResource、@PropertySource
查看>>
[dubbo] Dubbo API 笔记——配置参考
查看>>
The last access date is not changed even after reading the file on Windows 7
查看>>
SQL Server 字符串处理函数
查看>>
恢复系统管理员密码的五大奇招
查看>>
英语形容“漂亮女孩”知多少
查看>>
GridView 获取当前行的索引值
查看>>
PHPCMS V9二次开发:内容模块PC标签调用详解
查看>>
Virtual-Key Codes
查看>>
Azure China (3) 使用Visual Studio 2013证书发布Cloud Service至Azure China
查看>>
xmapp 404设置
查看>>
SQL Server中, DateTime (日期)型操作的 SQL语法
查看>>