当前位置: 首页 > news >正文

C++day1(笔记整理)

一、Xmind整理:

二、上课笔记整理:

1.第一个c++程序:hello world

#include <iostream>
//#:预处理标识符
//<iostream>:输入输出流类所在的头文件
//istream:输入流类
//ostream:输出流类using namespace std;     //std:标准命名空间
//using使用命名空间
//namespace就是命名空间的关键字
//std是标准命名空间名int main()
{cout << "第一个C++程序" << endl;//cout:ostream类的一个类对象,输出,但是不需要格式符// <<:左移运算符的重载,重载为插入运算符(输出运算符)cout << "Hello World!" << endl;return 0;
}

2.cout的使用 

#include <iostream>
#include <iomanip>
using namespace std;int main()
{int a = 16;cout << a << endl;     //16//----------通过关键字控制格式-----------cout << hex << a << endl;     //10 hex十六进制输出cout << a << endl;    //10  ---->因为上一行的cout已经指定了格式,如果想结束掉上述的格式,重新指定格式cout << dec << a << endl;  //dec表示十进制的输出cout << oct << a << endl;  //oct表示八进制输出cout << "-----------------------------" << endl;// ---------通过函数控制格式-------------cout << setbase(16) << a << endl;cout << setbase(8) << a << endl;cout << a << endl;   //20,使用函数仍然改变了cout的输出格式cout << setbase(10) << a << endl;cout << "指定宽度的输出<==>%nd" << endl;cout << setw(4) << left << a ;  //功能和%-4d一样,左对齐使用left,如果不加left默认是右对齐cout << "小数的指定宽度输出 " << endl;cout << setprecision(4) << 3.1456 << endl;//指定的是包含小数点的位置,3.146return 0;
}

3.输出斐波那契的前10项。    1 1 2 3 5 8 13 ····

#include <iostream>using namespace std;
int Fbi(int n)
{if(n==1||n==2){return 1;}else{return Fbi(n-1)+Fbi(n-2);}
}int main()
{int n;cout << "请输入一个数" << endl;cin >> n;for(int i=1;i<=n;i++){Fbi(i);cout << Fbi(i) << endl;}return 0;
}

4. cin标准输入流对象

#include <iostream>
#include <cstdio>
using namespace std;int main()
{int a;//scanf("%d",&a);  //需要控制格式cin >> a;    //cin加上右移运算符重载,再加上变量名,使用cin输入不需要加变量的地址cout << a << endl;char c;cin >> c;    //cin可以实现任意类型的输入cout << "从终端获取的字符c=" << c << endl;return 0;
}

5.终端输入一个字符,判断该字符的类型,字母(大写/小写)、数字字符,其他字符。

#include <iostream>
#include <cstdio>
using namespace std;int main()
{char a;//scanf("%d",&a);  //需要控制格式cin >> a;    //cin加上右移运算符重载,再加上变量名,使用cin输入不需要加变量的地址if(a>='0'&&a<='9'){cout << "a是一个数字" << endl;}else if(a>='A'&&a<='Z'){cout << "a是一个大写字母" << endl;}else if(a>='a'&&a<='z'){cout << "a是一个小写字母" << endl;}return 0;
}

6.局部变量和命名空间冲突

#include <iostream>
//using namespace std;namespace my_namespace {      //定义了一个命名空间int a=2000;int num2;void fun();   //命名空间中写函数的声明
}void my_namespace::fun()   //定义了一个命名空间中的函数
{std::cout << "test" << std::endl;
}using namespace my_namespace;  //引入命名空间中的所有标识符
using my_namespace::num2;   //引入命名空间中的部分标识符int main()
{using std::cout;  //引入std中的cout标识符using std::endl;  //引入std中的endl标识符int a = 90;cout << "局部变量a=" << a << endl;cout << my_namespace::a << endl;fun();return 0;
}

7.全局变量和命名空间冲突问题

#include <iostream>
using namespace std;int a = 3000;
namespace my_namespace {      //定义了一个命名空间int a=2000;int num2;void fun();   //命名空间中写函数的声明
}namespace B {int num2;
}
void my_namespace::fun()   //定义了一个命名空间中的函数
{std::cout << "test" << std::endl;
}using namespace my_namespace;  //引入命名空间中的所有标识符
using namespace B;int main()
{my_namespace::num2=900;    //在使用变量时,使用域限定符cout << B::num2 << endl;cout << my_namespace::a << endl; //通过域限定符和命名空间名访问指定变量acout << ::a << endl;    //访问全局变量areturn 0;
}
【5】命名空间添加
如果定义了多个同名的命名空间,最后多个会合并成一个命名空间
namespace B {int num2;int a = 10;
}namespace B {    //并没有定义新的命名空间B,改行的B会和前面B合并成一个命名空间int b;
}

8.命名空间的嵌套

#include <iostream>
using namespace std;namespace A {    //定义了一个命名空间Aint a=0;namespace B {   //嵌套一个命名空间Bint a=100;char c='a';}
}
using namespace A;
using namespace A::B;  //全局引入A中的命名空间B
int main()
{//cout << A::a << endl;   //0//cout << A::B::a << endl; //100,嵌套的命名空间,访问里面空间标识符时,需要逐级访问cout << c << endl;return 0;
}

9.给命名空间重命名

namespace 新名字 = 旧名字;
namespace NEW = A;   //把命名空间A重命名为NEW新名字和旧名字都可以继续使用
#include <iostream>
using namespace std;namespace A {    //定义了一个命名空间Aint a=0;namespace B {   //嵌套一个命名空间Bint a=100;char c='a';}
}namespace NEW = A;    //给命名空间A重命名为NEW
using namespace NEW;
//using namespace A::B;  //全局引入A中的命名空间B
int main()
{//cout << A::a << endl;   //0//cout << A::B::a << endl; //100,嵌套的命名空间,访问里面空间标识符时,需要逐级访问cout << NEW::B::c << endl;return 0;
}

10.using的其他用法

#include <iostream>
using namespace std;int main()
{typedef int a;a num1 =100;cout << num1 << endl;using INT = int;   //把基本数据类型int重定义为INT,后面可以直接使用INT定义变量INT num2 = 90;cout << sizeof(INT) << endl;return 0;
}

11.C++中字符串的定义

#include <iostream>
#include <cstring>
using namespace std;
int main()
{char str[]="hello";   //C语言风格的字符串,C++中仍然支持,结尾有'\0'cout << sizeof(str) << endl;cout << strlen(str) << endl;  //可以手动导入<cstring>头文件,使用strlen函数//通过string类实现变量的定义string str1 = "hello";   //定义了一个string类型的饿字符串str1并初始化hellostring str2 = str;cout << str2 << endl;   //C语言风格的字符串会自动转换成C++风格的字符串并且可以直接使用str2 = "hi";    //给str2字符串赋值//----------使用单个的字符给字符串赋值-----------string str3(5,'a');  //定义了一个str3字符串,使用5个a初始化cout << str3 << endl;string str4("world");   //定义了一个字符串str4,使用world初始化cout << str4 << endl;//----------多个字符串之间的赋值------------str3 = str4;cout << "s3=" << str3 << endl;cout << "s4=" << str4 << endl;
}

12.C++风格和C风格字符串的转化

#include <iostream>
#include <cstring>
using namespace std;int main()
{char str[]="hello";string str1 = str;   //C风格可以直接转化为C++风格//cout << strlen(str1) << endl;  //C++风格的字符串向C风格转化,需要特定的操作cout << strlen(str1.data()) << endl;  //使用过data函数后,str1可以被strlen计算//cout << strcat(str1.c_str(),"world") << endl;//因为str1.c_str()返回的时hello的字符数组形式,是一个const char*char str3[100]="world";strcat(str3,str1.c_str());cout << str3 << endl;return 0;
}

13.string常用的函数  empty()

#include <iostream>
#include <cstring>
using namespace std;int main()
{char str[]="hello";string str1 = str;   //C风格可以直接转化为C++风格
//  cout << str1.at(7) << endl;cout << str1.length() << endl;cout << str1.size() << endl;str1.clear();cout << str1 << endl;cout << str1.size() << endl;cout << str1.empty() << endl;return 0;
}

14.字符串比较

#include <iostream>
#include <cstring>
using namespace std;int main()
{char str[]="hello";string str1 = str;   //C风格可以直接转化为C++风格string str2 = "hi";if(str1<str2)   //字符串在C++中可以直接参与比较,结果0/1{cout << "str1<str2" << endl;}return 0;
}

15.字符串的输入

#include <iostream>
#include <cstring>
using namespace std;int main()
{char str[]="hello";string str1 = str;   //C风格可以直接转化为C++风格string str2;//cin >> str2;   //不能实现字符串带空格的输入getline(cin,str2);cout << str2 << endl;return 0;
}

16.终端输入一个字符串,以'\n'作为标志停止,判断字母和数字的个数,空格的个数。

#include <iostream>
#include <cstring>
using namespace std;int main()
{string str;getline(cin,str);int len = str.size();  //作为循环条件int num1=0,num2=0,num3=0;for(int i=0;i<len;i++){if(str.at(i)>='a'&&str.at(i)<='z'||str.at(i)>='A'&&str.at(i)<='Z'){num1++;}else if(str.at(i)>='0'&&str.at(i)<='9'){num2++;}else if(str.at(i)==' '){num3++;}}cout << num1 << endl;cout << num2 << endl;cout << num3 << endl;return 0;
}

17.C++中的bool

#include <iostream>
using namespace std;int main()
{bool a=true;cout << a << endl;    //默认是数字表示cout << boolalpha << a << endl;   //加上boolalpha显示字母表示bool b=0;cout << noboolalpha << b << endl;  //加上noboolalpha回到数字表示cout << sizeof(b) << endl;return 0;
}

相关文章:

C++day1(笔记整理)

一、Xmind整理&#xff1a; 二、上课笔记整理&#xff1a; 1.第一个c程序&#xff1a;hello world #include <iostream> //#:预处理标识符 //<iostream>:输入输出流类所在的头文件 //istream:输入流类 //ostream:输出流类using namespace std; //std&#x…...

关于chromedriver.exe一系列问题的解决办法

最新 chromedriver.exe下载地址&#xff1a;https://googlechromelabs.github.io/chrome-for-testing/#stable 下载最新版本的 chromedriver.exe 将其解压在 python.exe 同目录下&#xff0c;以及Chrome 的路径下 例如&#xff1a; C:\Program Files\Google\Chrome\Applicati…...

css-选择器、常见样式、标签分类

CSS CSS简介 层叠样式表(英文全称&#xff1a;Cascading Style Sheets)是一种用来表现HTML&#xff08;标准通用标记语言的一个应用&#xff09;或XML&#xff08;标准通用标记语言的一个子集&#xff09;等文件样式的计算机语言。CSS不仅可以静态地修饰网页&#xff0c;还可…...

三星申请新商标:未来将应用于智能戒指,作为XR头显延伸设备

三星最近向英国知识产权局提交了名为“Samsung Curio”的新商标&#xff0c;这预示着三星正积极扩展可穿戴设备生态。该商标被分类为“Class 9”&#xff0c;这表明它有可能被用于未来的智能戒指。 据报道&#xff0c;三星计划将智能戒指作为XR头显设备的延伸&#xff0c;与苹果…...

0201hdfs集群部署-hadoop-大数据学习

文章目录 1 前言2 集群规划3 hadoop安装包上传与安装3.1 上传解压 4 hadoop配置5 从节点同步和环境变量配置6 创建用户7 集群启动8 问题集8.1 Invalid URI for NameNode address (check fs.defaultFS): file:/// has no authority. 结语 1 前言 下面我们配置下单namenode节点h…...

DevOps中的持续测试优势和工具

持续测试 DevOps中的持续测试是一种软件测试类型&#xff0c;它涉及在软件开发生命周期的每个阶段测试软件。持续测试的目标是通过早期测试和经常测试来评估持续交付过程的每一步的软件质量。 DevOps中的持续测试流程涉及开发人员、DevOps、QA和操作系统等利益相关者。 持续…...

函数-C语言(初阶)

目录 一、什么是函数 二、函数的分类 2.1 库函数 2.2 自定义函数 三、函数的参数 3.1 实际参数&#xff08;实参&#xff09; 3.2 形式参数&#xff08;形参&#xff09; 四、函数的调用 4.1 传值调用 4.2 传址调用 五、函数的嵌套调用和链式访问 5.1 嵌套调用 5.2 链式访问…...

elementuiplus设置scroll-to-error之后 提示被遮挡的解决方案

项目场景&#xff1a; 普通的头部固定&#xff0c;中间滑动的布局&#xff0c;中间内容有表单&#xff0c;提交校验不通过时滚动到第一个错误项 问题描述 elementuiplus的scroll-to-error设置之后是局部滚动 当头部内容层级高于中间表单的时候&#xff0c;错误会被遮挡。 ---…...

vue中将新添加的div标签自动定位到可视区域内

可以结合使用Vue的ref和scrollIntoView()方法来实现 <template><div><button click"addDiv">添加新的<div>标签</button><div ref"container" class"container"><div v-for"&#xff08;item,inde…...

Vue3笔记——(尚硅谷张天禹Vue笔记)

Vue3 Vue3简介 1.Vue3简介 .2020年9月18日&#xff0c;Vue.js发布3.0版本&#xff0c;代号: One Piece(海贼王)。耗时2年多、2600次提交、30个RFC、600次PR、99位贡献者 . github上的tags地址: https://github.com/vuejs/vue-next/releases/tag/v3.0.0 2.Vue3带来了什么 .性能…...

正则表达式一小时学完

闯关式学习Regex 正则表达式&#xff0c;我感觉挺不错的&#xff0c;记录一下。 遇到不会的题&#xff0c;可以评论交流。 真的很不错 链接 Regex Learn - Step by step, from zero to advanced....

上门服务系统|上门服务小程序如何提升生活质量?

上门服务其实就是本地生活服务的升级&#xff0c;上门服务包含很多行业可以做的。例如&#xff1a;厨师上门、上门家电维修、跑腿等等。如今各类本地化生活服务越来越受大家的喜爱。基于此市场愿景&#xff0c;我们来谈谈上门服务系统功能。 一、上门服务系统功能 1、预约服务…...

系统报错msvcp120.dll丢失的解决方法,常见的三种解决方法

今天为大家讲述关于系统报错msvcp120.dll丢失的解决方法。在这个信息爆炸的时代&#xff0c;我们每个人都可能遇到各种各样的问题&#xff0c;而这些问题往往需要我们去探索、去解决。今天&#xff0c;我将带领大家走进这个神秘的世界&#xff0c;一起寻找解决msvcp120.dll丢失…...

数据库备份工具有哪些

本文主要介绍下数据库备份工具。 数据库备份工具有很多种&#xff0c;以下是一些常见的数据库备份工具&#xff1a; mysqldump&#xff1a;MySQL官方提供的命令行备份工具&#xff0c;适用于MySQL和MariaDB数据库。它可以将数据库导出为SQL文件&#xff0c;方便进行备份和恢复…...

Sentinel流量控制与熔断降级

&#x1f4dd; 学技术、更要掌握学习的方法&#xff0c;一起学习&#xff0c;让进步发生 &#x1f469;&#x1f3fb; 作者&#xff1a;一只IT攻城狮 &#xff0c;关注我&#xff0c;不迷路 。 &#x1f490;学习建议&#xff1a;1、养成习惯&#xff0c;学习java的任何一个技术…...

The Connector 周刊#10:你真的知道什么是DevOps文化吗?

AI 探索 用 LLM 构建企业专属的用户助手&#xff1a;很好的 LLM 应用工程实践&#xff0c;主要介绍了 PingCAP 如何使用大型语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;构建一个搭载企业专属知识库的智能客服机器人。除了采用行业内通行的基于知识库…...

leetcode438. 找到字符串中所有字母异位词(java)

滑动窗口 找到字符串中所有字母异位词滑动窗口数组优化 上期经典 找到字符串中所有字母异位词 难度 - 中等 Leetcode 438 - 找到字符串中所有字母异位词 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出…...

【锐捷】OSPF 多区域配置

【实验名称】 配置 OSPF 多区域。 【实验目的】 配置 OSPF 多区域&#xff0c;理解 OSPF 层次型网络的特点。 【背景描述】 本实验拓扑图中有 3 台路由器&#xff0c;路由器在区域 0 和区域 1 中&#xff0c;路由器 B 在区域 0 和区域 30&#xff0c; 路由器 C 在区域 30。 【需…...

Linux常用命令_权限管理命令

文章目录 1. 权限管理命令: chmod2. 其他权限管理命令2.1 权限管理命令: chown2.2 权限管理命令: chgrp2.3 权限管理命令: umask 1. 权限管理命令: chmod {ugoa}中分别为&#xff1a;u-user、g-group、a-all&#xff1b;谁创建文件&#xff0c;谁是所有者&#xff1b;所属组为所…...

【黑马头条之热点文章kafkaStream】

本笔记内容为黑马头条项目的热点文章-实时计算部分 目录 一、实时流式计算 1、概念 2、应用场景 3、技术方案选型 二、Kafka Stream 1、概述 2、Kafka Streams的关键概念 3、KStream 4、Kafka Stream入门案例编写 5、SpringBoot集成Kafka Stream 三、app端热点文章…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...