C++中的Vector与map

本文介绍了C++中的两种标准库容器:Vector和Map。Vector提供了push_back、size、empty等操作,注意不能通过下标直接添加元素。Map是一种关联容器,元素是一对一的关系,支持高效的关键字查询。Map的元素按key自动升序排序,不能直接排序。同时,文章提及了set的基本操作,包括插入、删除和遍历。

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

Vector:是标准库vector类型
使用vector,必须包含适当的头文件

#include<vector>

定义和初始化

vector<T> v1   //v1是一个空的vector
vector<T> v2(v1) //v2中包含v1的所有元素的副本
vector<T> v2 = v1  //等价于v2(v1)

赋值

vector<string> v1{
  
  "hi"} //列表初始化,v1有一个元素
vector<string> v2("hi")   //错误,不能用一个字符串字面值创建vector对象
vector<string> v3{
  
  10}   //有10个默认初始化的值
vector<string> v4{
  
  10,"hi"}  //有10个值为"hi"的元素

注意:

vector<int> ivec(10)   //10个元素,每一个元素均为0
vector<string> svec(10) //10个元素。每一个都是空string对象
//给vector赋值用{},涉及到vector中数量的时候用()

Vector对象最重要的几种操作
1. v.push_back(t) 在数组的最后添加一个值为t的数据
2. v.size() 当前使用数据的大小
3. v.empty() 判断vector是否为空
4. v[n] 返回v中位置为n的元素
5. v1=v2 把v1的元素替换为v2元素的副本
6. v1==v2 判断v1与v2是否相等
7. !=、<、<=、>、>= 保持这些操作符惯有含义
添加元素

#include<vector>
vector<int> v1
for(int i = 1;i!= 100;i++)
{
    v1.push_back(i)
}

不能用下标形式添加元素

vector<int> ivec
for(decltype(ivec.size()) ix = 0;ix!= 10;ix++)
{
    ivec[ix] = ix   //严重错误,ivec不包含任何的元素
    ivec.push_back(ix)  //正确,添加一个新元素,新元素为ix
} 

注意:只能对确知已存在的元素执行下标操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值