C++ collection容器基础知识

本文介绍了C++中的几种常用容器,包括vector的基本使用,如从文件读取数据;stack在实现RPN计算器中的应用;queue在模拟排队付款场景中的角色;以及map作为键值对存储的数据结构,如何定义并读取文件。

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

最常见的类为vector,基本上可以取代C的array,而且比array好用很多。

下面这个例子,是从文件中读取所有的行存入到lines中,然后输出。

vector类

不用去管promptUserForFile以及readEntireFile怎么实现的,包含那个库很重要。

#include <iostream>
#include <fstream>
#include <string>
#include "filelib.h"
#include "vector.h"
#include "console.h"
using namespace std;
void readEntireFile(istream &is, Vector<string> &lines);

int main() {
    ifstream infile;
    Vector<string> lines;
    promptUserForFile(infile, "Input file: ");
    readEntireFile(infile, lines);
    infile.close();
    for (int i = lines.size() - 1; i >= 0; i--) {
        cout << lines[i] << endl;
    }
    return 0;
}

下面这个例子,统计字符

#include <iostream>
#include <iomanip>
#include <fstream>
#include <cctype>
#include "filelib.h"
#include "vector.h"
#include "console.h"

using namespace std;

static const int COLUMNS = 7;

int main() {
    Vector<int> letterCounts(26);
    ifstream infile;
    promptUserForFile(infile, "Input file: ");
    char ch;
    while (infile.get(ch)) {
        if (isalpha(ch)) {
            letterCounts[toupper(ch) - 'A']++;
        }
    }
    infile.close();
    for (char ch = 'A'; ch <= 'Z'; ch++) {
        cout << setw(COLUMNS) << letterCounts[ch - 'A'] << " " << ch << endl;
    }
    return 0;
}

Input file: /home/wang/3english

377 A

55 B

190 C

247 D

575 E

119 F

62 G

203 H

344 I

2 J

14 K

205 L

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值