C++ 标准库类型之vector类型

简介: C++ 标准库类型之vector类型

vector是同一种类型的对象的集合,每个对象都有一个对应的证书索引值。和string对象一样,标准库将负责管理与存储元素相关的内存,我们把vector称为容器,因为他可以包含其他对象。一个容器中的所有对象必须是同一种类型

使用vector之前,必须包含相应的头文件。

vector是一个类模板(class template)使用模板可以编写一个类定义或函数定义,而用于多个不同数据类型。因此 我们可以定义保存string对象的vector,或保存int值得vector 又或是保存自定义的类类型对象;

声明从类模板产生的某种类型的对象,需要提供附加信息,信息的种类取决于模板。以vector为例,必须说明vector保存何种对象的类型,通过将类型放在类模板名称后面的尖括号中来指定类型。

vector<int> ivec;

和其他变量一样 定义vector对象 要指定类型和一个变量的列表。上面的第一个定义,类型是vector<int> 该类型即是含有若干int类型对象的vector,变量名为ivec。

1.vector对象的定义与初始化

vector类定义了好几种够着函数 用来定义和初始化vector对象

vector<T> v1; vector保存类型为T的对象,默认构造函数v1为空

vector<T> v2(v1);v2是v1的一个副本

vector<T> v3(n,i)v3包含n个i的元素

vector<T> v4(n);v4含有初始化的元素的n个副本

1 创建确定个数的元素

若要创建非空的vector对象,必须给初始化元素的值。当把一个vector对象复制到另一个vector对象时,新复制的vector中每一个元素都初始化为原vector中相应的副本 但这两个vector对象必须保存同一种元素类型

vector<int> ivec1;

vector<int> ivec2(ivec1);

vector<string> svec(ivec1);这个是错误的元素类型不同

vector<int> ivec4(10,-1);创建一个包含10个元素 每个元素都初始化为-1

vector<string> svec(10,"hi!");10个每个都初始化为"hi!"

2 值初始化

如果没有对值进行初始化 那么标准库将自行提供一个元素初始值进行值初始化。这个库生成的初始值将用来初始化容易中的每个元素。具体取决于vector中存储的数据类型。

vector<int> ivec(10)  //初始化10个0

如果vector保存的是含有构造函数类类型的元素,标准库将用该类型的默认构造函数初始化

vector<string> svec(10)//初始化10个空串

第三种可能性 元素类型可能没有定义任何构造函数的类类型。这种情况下标准库仍然产生一个带初始值的对象,这个对象的每个成员进行了初始化。

3vector对象的操作

v.empty()

v.size()

v.push_back(t) 在末尾中加入一个值为t的元素

v[n]返回v中位置为n的元素

v1=v2把v1中替换为v2的元素的副本

v1==v2 如果v1与v2相等 则返回true

1vector的size

empty和size 操作类似于string类型的相关操作 成员函数size返回相应的vector类定义的size_type的值

2.向vector中添加元素

string word;

vector<string> text;

text.push_back(word);

3.vector的下标操作

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

ivec[ix]=0;

4.下列操作不添加元素

vector<int> ivec;

for(vector<int>::size_type ix=0;ix!=10;++ix)

{

ivec[ix]=ix;

}

上面的操作是不会添加进入元素的

目录
相关文章
|
25天前
|
算法 C++ 容器
C++标准库(速查)总结
C++标准库(速查)总结
55 6
|
25天前
|
存储 程序员 C++
C++常用基础知识—STL库(2)
C++常用基础知识—STL库(2)
64 5
|
23天前
|
存储 C++ 索引
【C++打怪之路Lv9】-- vector
【C++打怪之路Lv9】-- vector
17 1
|
25天前
|
存储 自然语言处理 程序员
C++常用基础知识—STL库(1)
C++常用基础知识—STL库(1)
44 1
|
1月前
|
编译器 C++
【C++】—— vector模拟实现
【C++】—— vector模拟实现
|
29天前
|
算法 C++ 容器
C++之打造my vector篇(下)
C++之打造my vector篇(下)
26 0
|
29天前
|
存储 编译器 C++
C++之打造my vector篇(上)
C++之打造my vector篇(上)
25 0
|
1天前
|
存储 编译器 Linux
【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)
本文介绍了C++中的类和对象,包括类的概念、定义格式、访问限定符、类域、对象的创建及内存大小、以及this指针。通过示例代码详细解释了类的定义、成员函数和成员变量的作用,以及如何使用访问限定符控制成员的访问权限。此外,还讨论了对象的内存分配规则和this指针的使用场景,帮助读者深入理解面向对象编程的核心概念。
9 4
|
24天前
|
存储 编译器 对象存储
【C++打怪之路Lv5】-- 类和对象(下)
【C++打怪之路Lv5】-- 类和对象(下)
22 4
|
24天前
|
编译器 C语言 C++
【C++打怪之路Lv4】-- 类和对象(中)
【C++打怪之路Lv4】-- 类和对象(中)
20 4