C++ 标准模板库(STL)的学习

本文详细介绍了C++标准模板库(STL)中的三种重要容器:向量(vector)、链表(list)和映射(map)。分别阐述了它们的特点、应用场景及基本用法,并通过示例展示了如何进行初始化、操作及遍历。

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

目录

一、向量(vector)

二、链表(list)

三、映射(map)


一、向量(vector)

1.所在头文件:#include<vector>

2.本质:对数组的封装。

3.特点:读取能在常数时间完成且大小可根据需要去改变。

4.初始化:

初始化举例:

vector<int> ivec1;
vector<int> ivec2(ivec1);

vector<string> svec1;
vector<string> svec2(ivec);

vector<int> ivec4(10,-1);
vector<string> svec(10,"hi!"); 

5.常用函数:

 使用举例:

#include<iostream>
#include<vector>
using namespace :: std;

int main()
{
    vector<int> vec;
    vec.push_back(3);
    vec.pop_back();

    cout << vec.size() << endl;

    return 0;
}

结果为0。

6.如何遍历vector?

法一(常见遍历数组方法):

    for(int i = 0;i < vec.size();i++){
        cout << vec[i] << endl;
    }

法二(迭代器方法):

    vector<int>::iterator itor = vec.begin();
    for(;itor != vec.end();itor++){
        cout << *itor << endl;
    }

二、链表(list)

1.所在头文件:#include<list>

2.原理:关于链表原理,详见动态数据结构——静态链表(C语言),这里不再赘述。

3.特点:数据插入速度快。

4.使用方法:与vector使用方法类似。但要注意一点,在list中的遍历只支持迭代器方式的遍历,

不支持

    for(int i = 0;i < list1.size();i++){
        cout << list1[i] << endl;
    }

三、映射(map)

1.所在头文件:#include<map>

2.原理:

3.使用方法:

map需要与pair一起使用,用来存储多个key-value对。

    map<int,string> m;
    pair<int,string> p1(10,"hello");
    pair<int,string> p2(20,"world");
    m.insert(p1);
    m.insert(p2);

    cout << m[10] << endl;
    cout << m[20] << endl;

    map<string,string> m;
    pair<string,string> p1("H","hello");
    pair<string,string> p2("W","world");
    m.insert(p1);
    m.insert(p2);

    cout << m["H"] << endl;
    cout << m["W"] << endl;

如何遍历map?

    map<string,string>:: iterator itor = m.begin();
    for(;itor != m.end();itor++){
        cout << itor->first << endl;
        cout << itor->second << endl;
    }

其中itor->first是打印key的值,itor->second是打印value的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值