源代码:

#include <iostream>
#include <vector>
#include <string>
using namespace std;int main(){char a;int b;int c;vector <char> numbers;cout<<"请输入一组字符(按下'#'结束):\n";while(1){cin>>a;if(a=='#'){break;}numbers.push_back(a);}cout<<"数组元素:";for(char num:numbers){cout<<num<<' ';}cout<<endl<<"请输入你要查询第几个元素:";cin>>b;cout<<"第"<<b<<"个数的查询结果是:"<<numbers[b]<<endl;cout<<"请输入你要删除第几个元素:";cin>>c;if(c>=0 && c < numbers.size()){numbers.erase(numbers.begin()+c);cout<<"删除成功 删除后的数组:";for(char num:numbers){cout<<num<<' ';}}else{cout<<"\n删除失败,不在数组范围内";}return 0;
}

代码详细解析

这段代码实现了一个简单的字符数组管理程序,允许用户输入一组字符,然后查询或删除特定位置的元素。下面我将对代码进行详细解析:

1. 头文件和命名空间

#include <iostream>
#include <vector>
#include <string>
using namespace std;
  • 引入了三个必要的头文件:
    • iostream:用于输入输出操作
    • vector:用于使用动态数组容器
    • string:用于字符串处理(虽然在这段代码中没有直接使用)
  • using namespace std; 允许直接使用标准库中的类和函数,而不需要加 std:: 前缀

2. 主函数和变量声明

int main(){char a;int b;int c;vector <char> numbers;
  • 声明了三个变量:
    • a:用于临时存储用户输入的字符
    • b:用于存储用户想要查询的元素索引
    • c:用于存储用户想要删除的元素索引
  • 创建了一个 vector<char> 类型的动态数组 numbers,用于存储用户输入的字符

3. 字符输入部分

    cout<<"请输入一组字符(按下'#'结束):\n";while(1){cin>>a;if(a=='#'){break;}numbers.push_back(a);}
  • 提示用户输入一组字符,并说明按 # 结束输入
  • 使用无限循环 while(1) 持续读取用户输入
  • 每次读取一个字符到变量 a 中
  • 检查读取的字符是否为 #,如果是则使用 break 语句跳出循环
  • 如果不是 #,则将字符添加到 numbers 数组的末尾(使用 push_back 方法)

4. 显示数组元素

    cout<<"数组元素:";for(char num:numbers){cout<<num<<' ';}
  • 输出提示信息 "数组元素:"
  • 使用 C++11 引入的范围 for 循环遍历 numbers 数组中的每个元素
  • 对于每个元素,输出该字符后跟一个空格

5. 查询指定位置的元素

    cout<<endl<<"请输入你要查询第几个元素:";cin>>b;cout<<"第"<<b<<"个数的查询结果是:"<<numbers[b]<<endl;
  • 提示用户输入想要查询的元素位置(第几个元素)
  • 读取用户输入的位置到变量 b 中
  • 直接通过索引访问 numbers 数组中的元素并输出结果
    • 注意:这里没有检查索引是否越界,如果用户输入的索引超出数组范围,会导致未定义行为

6. 删除指定位置的元素

    cout<<"请输入你要删除第几个元素:";cin>>c;if(c>=0 && c < numbers.size()){numbers.erase(numbers.begin()+c);cout<<"删除成功 删除后的数组:";for(char num:numbers){cout<<num<<' ';}}else{cout<<"\n删除失败,不在数组范围内";}
  • 提示用户输入想要删除的元素位置
  • 读取用户输入的位置到变量 c 中
  • 进行索引有效性检查:
    • 如果索引 c 在有效范围内(0 到 numbers.size()-1),则执行删除操作
      • 使用 erase 方法删除指定位置的元素
      • numbers.begin()+c 计算出指向要删除元素的迭代器
      • 输出删除成功的消息,并显示删除后的数组元素
    • 如果索引无效,则输出删除失败的消息

7. 返回值

    return 0;
}
  • 主函数返回 0,表示程序正常结束

注:该代码是本人自己所写,可能不够好,不够简便,欢迎大家指出我的不足之处。如果遇见看不懂的地方,可以在评论区打出来,进行讨论,或者联系我。上述内容全是我自己理解的,如果你有别的想法,或者认为我的理解不对,欢迎指出!!!如果可以,可以点一个免费的赞支持一下吗?谢谢各位彦祖亦菲!!!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/911803.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/911803.shtml
英文地址,请注明出处:http://en.pswp.cn/news/911803.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试的问题

主题&#xff1a;LLM相关、多模态相关、python编程、java编程 参见&#xff1a;小红书面试相关的帖子 LLM相关&#xff1a; 02.大语言模型架构/1.attention/1.attention.md qzl66/llm_interview_note - Gitee.com 02.大语言模型架构/Transformer架构细节/Transformer架构细…

【EDA软件】【应用功能子模块网表提供和加载编译方法】

1.背景 使用者做FPGA应用开发&#xff0c;将开发成果交给自己的客户&#xff0c;但是并不想提供RTL源码以及加密的源码&#xff0c;只想提供网表文件。 2.方法 2.1 指定应用功能子模块设置为Top层&#xff1b; 2.2 运行综合&#xff0c;在outputs文件夹下会生成该应用功能子…

Spring:多数据源配置多个事务管理器DEMO

Spring配置文件&#xff1a; 配置2个事务管理器&#xff1a;txManager和txManager2 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLS…

通用 Excel 导出功能设计与实现:动态列选择与灵活配置

在企业级应用开发中&#xff0c;数据导出是高频需求。本文介绍一种支持动态列选择、灵活配置的通用 Excel 导出方案&#xff0c;通过前后端协同设计&#xff0c;实现导出字段、列顺序、数据格式的自定义&#xff0c;满足多样化业务场景。 一、功能架构设计 核心特性 动态字段…

安全壁垒 - K8s 的 RBAC、NetworkPolicy 与 SecurityContext 精要

安全壁垒 - K8s 的 RBAC、NetworkPolicy 与 SecurityContext 精要 如果说 Kubernetes 是我们构建云原生应用的“城市”,那么我们已经学会了如何规划道路(网络)、建设住宅(Pod 调度)、提供水电(存储)以及智能调节城市规模(自动伸缩)。现在,是时候为这座城市安装“城门…

服务器开放端口如何设置,本地内网开通应用端口让外网访问连接步骤

在互联网时代&#xff0c;服务器扮演着至关重要的角色&#xff0c;为了让本地搭建部署的服务器能够正常提供互联网服务&#xff0c;我们需要开放特定端口以供外部网络的客户端访问&#xff0c;本文将带领大家深入了解内网本地服务器如何设置端口开放给公网访问。 服务器开放端…

【深度学习新浪潮】什么是上下文工程?

什么是上下文工程? 上下文工程(Context Engineering) 是指通过设计、优化与大语言模型(LLM)交互时的输入内容(即“上下文”),引导模型生成更符合预期、更精准回答的系统性方法。这里的“上下文”通常包括 提示词(Prompt)、示例(Few-Shot Examples)、历史对话记录、…

Ansible ad-hoc模式常用三大模块“script、shell、command“应用笔记

script模块 - 外卖厨师 相当于你把做好的菜谱&#xff08;脚本文件&#xff09;分发给别人厨房执行 适合场景&#xff1a; ✓ 需要复杂菜谱&#xff08;多步骤脚本&#xff09; ✓ 保证每家分店味道一致&#xff08;环境标准化&#xff09; 示例&#xff1a;把《红烧肉制作指…

双重检查锁定实现的单例模式为什么需要volatile

今天介绍一下 单例模式(Singleton) 应用场景&#xff1a;配置管理类、数据库连接池、线程池 实现方式&#xff1a;双重检查锁定、静态内部类、枚举 public class ConfigManager {private static volatile ConfigManager instance;private ConfigManager() {}public static C…

Flink流水线+Gravitino+Paimon集成

1.数据源管理 1.1 添加Gravitino数据源 添加成功之后&#xff0c;会在Gravitino中创建一个名为配置的中的meatalake 1.2. 添加Paimon数据源 属性gravitinoId可以关联前面创建的Gravitino数据源&#xff0c;关联后&#xff0c;会在gravitino下创建一个该数据源的catalog。 2. …

关系代数详解与SQL示例

关系代数详解与SQL示例 关系代数是关系数据库的理论基础&#xff0c;它提供了一组操作符用于操作关系&#xff08;表&#xff09; 1. 基本操作 1.1 选择 (Selection, σ) 选择操作从关系中选择满足特定条件的元组&#xff08;行&#xff09;。 关系代数表示&#xff1a;σ条…

Android14音频子系统-Linux音频子系统ASoC-ALSA

文章目录 1、术语2、概述1&#xff09;资料快车 3、预备工作1&#xff09;codec - UDA1340 - 硬件规格2&#xff09;ASOC-ALSA代码重点目录介绍3&#xff09;ASOC-ALSA层级介绍4&#xff09;了解基本的软硬件架构 4、数据结构5、代码分析1&#xff09;Machine1、总体流程介绍2、…

零基础入门Java+大模型(持续更新)

0.初始一些常见的概念 AI&#xff1a;人工智能 大模型划分&#xff1a;&#xff08;本章了解一下这个就行&#xff09;NLP模型-->自然语言模型&#xff08;AI现在爆火的原因&#xff0c;就是自然语言模型这一块取得了很大的成就&#xff09;。 LLM&#xff1a;大语言模型…

数据库系统总结

数据库系统概述 数据库系统&#xff08;Database System, DBS&#xff09;是用于高效管理、存储和检索数据的软件系统。 数据库系统的组成包括&#xff1a;数据库、硬件、软件、人员。 三级模式-两级映像 内模式&#xff1a;管理如何存储物理的数据&#xff0c;对数据的存储…

2026-软件工程-《软件质量测试与保证》-期末复习—习题汇总

题量: 20 满分: 100 作答时间:06-04 17:30至06-22 23:59 智能分析 80分 一. 单选题&#xff08;共10题&#xff0c;50分&#xff09; (单选题)白盒测试设计测试用例的依据是( )。 A. 代码逻辑结构 B. 代码注释说明 C. 需求规格说明书 D. 用户使用场景 我的答案:A:代码逻辑结构…

量化面试绿皮书:35. 蒙蒂霍尔问题

文中内容仅限技术学习与代码实践参考&#xff0c;市场存在不确定性&#xff0c;技术分析需谨慎验证&#xff0c;不构成任何投资建议。 35. 蒙蒂霍尔问题 蒙提霍尔问题是一个基于美国老电视节目《让我们做个交易》的概率谜题&#xff0c;该问题以该节目的主持人命名。假设你现在…

如何防范 SQL 注入攻击以及SQL 注入防范技巧

在互联网高度发展的时代&#xff0c;网络安全问题日益突出&#xff0c;SQL 注入攻击成为众多网站和应用程序面临的严重威胁之一。本文将详细介绍如何防范 SQL 注入攻击&#xff0c;通过多个关键方面的详细阐述&#xff0c;帮助开发者和网站管理者构建更安全的网络环境&#xff…

k8s从入门到放弃之数据存储

k8s从入门到放弃之数据存储 在Kubernetes中&#xff0c;数据存储主要通过持久卷&#xff08;Persistent Volumes, PVs&#xff09;和持久卷声明&#xff08;Persistent Volume Claims, PVCs&#xff09;机制来实现。这种设计允许存储与计算分离&#xff0c;使得容器可以根据需…

用户体验驱动的3D设计:从功能实现到情感共鸣的设计升级

你有没有想过&#xff1a; 为什么有些产品看起来“平平无奇”&#xff0c;却能赢得用户喜爱&#xff1f;同样是3D建模&#xff0c;为什么有些人做的模型总让人觉得“有温度”&#xff1f;设计师只是关注功能和结构就够了吗&#xff1f;还是应该让作品“打动人心”&#xff1f;…

【图床配置记录】——pigo+gitee+typroa

记录一下安装的过程 基本上blog1可以解决 blog1 但是如果pigo上面没有gitee 或者下载gitee没啥反应 手动安装&#xff0c;在c:/用户/用户名/AppData/Roaming/picgo这个目录下,以管理员身份打开powershell&#xff08;或cmd&#xff1b; 文件——以管理员打开ps——输入npm in…