《C++ Primer》学习笔记之vector

本文详细介绍了C++标准库中的vector类模板,包括vector的定义、初始化方式以及与内置数组的区别。通过实例展示了如何使用vector进行元素的拷贝和初始化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vector是C++标准库提供的一种类模板,是同一种类型的对象的集合,每一个对象都有一个对应的索引(整数)。vector也被称为容器。使用它必须包含include <vector>

vector不是一种数据类型,而是一个类模板,可以用来定义任意多种数据类型。vector类型的每一种都制定了其保存元素的类型。so,vector<int>和vector<string>都是数据类型。

 

vector对象的定义和初始化

vector类定义了多种构造函数,用来初始化vector对象

比如:

vector<T> v1;         // v1为空

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

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

vector<T> v4(n);   //v4含有初始化元素的n个副本,类似于数组 T V[n]

对于内置数组 我们可以显式地把数组的元素初始化为一组常量值,例如 :
int ia[ 6 ] = { -2, -1, 0, 1, 2, 1024 };

我们不能用同样的方法显式地初始化 vector ,但是可以将 vector 初始化为一个已有数组的全部或一部分,只需指定希望被用来初始化 vector 的数组的开始地址以及数组最末元的下一位置来实现,例如: 
// 把 ia 的 6 个元素拷贝到 ivec 中
vector< int > ivec( ia, ia+6 ); 

被传递给ivec 的两个指针标记了用来初始化对象的值的范围,第二个指针总是指向要拷贝的末元素的下一位置,标记出来的元素范围也可以是数组的一个子集,例如 :

// 拷贝 3 个元素 ia[2], ia[3], ia[4]
vector< int > ivec( &ia[ 2 ], &ia[ 5 ] );


 与内置数组不同 vector 可以被另一个 vector 初始化 或被赋给另一个 vector 例如 
vector< string > svec;
void init_and_assign()
{
    // 用另一个 vector 初始化一个 vector
    vector< string > user_names( svec );
    // ...
 
    // 把一个 vector 拷贝给另一个 vector
    svec = user_names;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值