前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >STL(标准模板库)02

STL(标准模板库)02

作者头像
用户7272142
发布2023-11-02 09:23:09
890
发布2023-11-02 09:23:09
举报
文章被收录于专栏:Republic博客Republic博客

有了上节笔记的基础,本篇我们就可以写一些例子来巩固知识 我们用动态数组vector编写一个书架,这个书架可以上架图书和浏览图书

代码语言:javascript
复制
#include<iostream>
#include<vector>
#include<string>
struct Riview {
    std::string title;
    int rating;
};
bool FillReview(Riview& rv);
void Show(const Riview& rr);
int main()
{
    using std::cout;
    using std::vector;
    vector<Riview> Books;
    Riview temp;
    while (FillReview(temp))
    {
        Books.push_back(temp);
    }
    int num = Books.size();
    for (size_t i = 0; i < num; i++)
    {
        Show(Books[i]);
    }
    cout << "Reprising:\n"
        << "Rating\tBook\n";
    vector<Riview>::iterator pd;
    for (pd = Books.begin(); pd != Books.end(); pd++)
    {
        Show(*pd);
    }
    vector<Riview> oldlist(Books);
    if (num>3)
    {
        Books.erase(Books.begin() + 1, Books.begin() + 3);
        cout << "删除第二个图书到第3个图书后.\n";
        for (pd = Books.begin(); pd!=Books.end(); pd++)
        {
            Show(*pd);
        }
        Books.swap(oldlist);
        cout << "交换两个书架的容器数据后.\n";
        for (pd = Books.begin(); pd != Books.end(); pd++)
        {
            Show(*pd);
        }

    }
    else
    {
        cout << "error.\n";
    }
    return 0;
}

bool FillReview(Riview& rv)
{
    std::cout << "请输入你书籍的名字: ";
    std::getline(std::cin, rv.title);
    if (rv.title == "quit")
    {
        return false;
    }
    std::cout << "请输入图书编号: ";
    std::cin >> rv.rating;
    if (!std::cin)
    {
        return false;
    }
    while (std::cin.get()!='\n')
    {
        continue;
    }
    return true;
}

void Show(const Riview& rr)
{
    std::cout << rr.rating << '\t' << rr.title << std::endl;
}
image.png
image.png

Q:定义一个 int 类型的 vector 动态数组,将以下元素:1, 4, 3, 7, 9, 3, 6, 8, 3, 5, 2, 3, 7 插入到动态数组中。之后,使用 for 循环删除动态数组中的值为 3 的元素,并将结果输出出来!

代码语言:javascript
复制
#include<vector>
#include<iostream>
int main()
{
    using std::vector;
    int arr[] = { 1, 4, 3, 7, 9, 3, 6, 8, 3, 5, 2, 3, 7 };
    vector<int> arr_int(arr, arr + sizeof(arr) / sizeof(int));
    vector<int>::iterator pr;
    for (pr = arr_int.begin(); pr!=arr_int.end(); pr++)
    {
        if (*pr == 3)
        {
            pr = arr_int.erase(pr);
        }
    }
    int num = arr_int.size();
    std::cout << "arr_int = ";
    for (int i = 0; i < num; i++)
    {
         std::cout<< '\t' << arr_int[i];
    }

}
image.png
image.png
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档