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

C++课程总复习

一、c++的第一条程序

1.cout 

cout ==>输出类对象,用来输出的,可以自动识别类型,所以不需要加格式符号

<< 插入符(输出符号)

endl 换行===>\n

#include <iostream>
//#预处理
//include 包含 相应的头文件
//iostream 输入输出流  i--input  o--outusing namespace std;
//using :使用命名空间的关键字
//namespace :命名空间的关键字
//std:标准的命名空间//程序入口
int main()
{ //程序的开始cout << "Hello World!" << endl;cout << "今天是我学习C++的第一天,好开心呀" << "好油" << endl;return 0;} //程序的结束

2.cin

cin 输入类的对象, 用来输入的,给变量初始化,它可以自动识别数据类型,所以不需要加格式符,不需要加&

>> 提取符(输入符)

#include <iostream>using namespace std;int main()
{cout << "请输入你的年纪:" << endl;int age;cin >> age;cout << "age = " << age;return 0;
}

二、c++的数据类型

1. 数据类型:基本数据类型、构造数据类型

基本数据类型:char 、short、int 、long、float、double、bool、string

构造数据类型:数组、指针、结构体、共用体、枚举、

#include <iostream>
#include <iomanip>using namespace std;int main()
{//字符型 每个字符都有对应的ASCII码值char a = 'A';cout << "a = " << a << endl; //结果  a = Acout << "a = " << (int)a << endl;//整型  进制的问题  有无前缀//二进制  0b//八进制  0//十进制  无//十六进制 0xint b = 100, b2 = 0b100, b3 = 0100, b4 = 0x100;cout << "b = " << b << endl; //结果100cout << "b = " << dec << b << endl; //dec是以10进制方式 100cout << "b = " << oct << b << endl; //oct是以8进制cout << "b = " << hex << b << endl; //hex是以16进制cout << "b = " << b << endl; //如果改变了输出进制规则,则后面都以这种方式输出cout << "b = " << dec << b << endl;//浮点型double d1 = 12.3456789, d2 = 1.23456789;cout << "d1 = " << d1 << endl; //保留有效数字6位,存在四舍五入//如果自己想保留有效数字几位,需要用到一个方法  其头文件 <iomanip>cout << setprecision(4) << d1 << endl;//保留小数点后几位cout << setprecision(4) << fixed << d1 << endl;//bool类型 true == 1  false == 0bool t = true, t2 = false;cout << t << endl;cout << boolalpha << t << endl;cout << t2 << endl;//bool可以参与运算cout << t+t2 << endl;return 0;
}

2 .C++中字符串string

#include <iostream>using namespace std;int main()
{string str1;  // int astring str2 = "abcdef";  //初始化cout << "str2 = " << str2 << endl;string str3 = str2;  //把str2初始化str3cout << "str3 = " << str3 << endl;string str4(str3);  //  ==>   string str4 = str3; 调用有参构造函数cout << "str4 = " << str4 << endl;string str5(str2,3); //把str2下标为3地方开始给str5初始化cout << "str5 = " << str5 << endl;str1 = str5; //赋值string str6(6, 'm');cout << "str6 = " << str6 << endl;return 0;
}

3. C++中字符串常用的函数

size() 大小---元素的个数

empty() 判断是否为空

capacity() 容量大小

if(!str6.empty()){cout << str6.size() << endl;cout << str6.capacity() << endl;}

4 .C++中字符串和C语言中字符串风格互换

1> c语言风格的字符串可以直接转换成c++字符串

2> c++字符串不可以直接转换成c风格的字符串

 string str;char a[20] = "hello kitty";str = a;cout << str << endl;string strr = "hello world";//a = strr;//strcpy(a, strr);strcpy(a, strr.c_str()); //把C++中的字符串转换成ccout << a << endl;  //hello world

5. 字符串元素的访问

1> 下标 ---不判断是否越界

2> at() ---判断是否越界

#include <iostream>using namespace std;int main()
{string str = "hello";cout << str[4] << endl;cout << str[8] << endl;cout << str.at(4) << endl;cout << str.at(8) << endl;return 0;
}

6. 字符串的比较

由于c++有这种数据类型的变量,所以可以像其他基本数据类型一样用关系运算符比较。

 string str1 = "ab";string str2 = "ABCDEFGTTTTT";if(str1 != str2){if(str1 > str2){cout << "str1 > str2" << endl;}else{cout << "str1 < str2" << endl;}}else{cout << "sr1 == str2" << endl;}

三、数组 array

#include <iostream>
#include <array> //包含数组的头文件 容器using namespace std;int main()
{//一维数组
//    int a[5];
//    for(int i = 0; i<5; i++)
//    {
//        cin >> a[i];
//    }
//    for(int i=0; i<5; i++)
//    {
//        cout << a[i];
//    }//    array<int, 5> a; // == int a[5] 容器
//    array<int, 5>::iterator iter; //迭代器  ==指针
//    //a.begin()第一个元素的地址
//    //a.end()最后一个元素的下一个地址
//    for(iter = a.begin(); iter != a.end(); iter++)
//    {
//        cin >> *iter;
//    }
//    for(iter = a.begin(); iter != a.end(); iter++)
//    {
//        cout << *iter << " ";
//    }
//    cout << endl;//二维数组  由多个数据类型相同的一维数组组成的数组
//    int a[3][2];
//    for(int i=0;i<3;i++)
//    {
//        for(int j=0;j<2;j++)
//        {
//            cin >> a[i][j];
//        }
//    }
//    for(int i=0;i<3;i++)
//    {
//        for(int j=0;j<2;j++)
//        {
//            cout << a[i][j] << " ";
//        }
//        cout << endl;
//    }array< array<int, 2> , 3> a;array< array<int, 2> , 3>::iterator iter1;array<int, 2>::iterator iter2;for(iter1 = a.begin(); iter1 != a.end(); iter1++){for(iter2 = (*iter1).begin(); iter2 != (*iter1).end(); iter2++){cin >> *iter2;}}for(iter1 = a.begin(); iter1 != a.end(); iter1++){for(iter2 = (*iter1).begin(); iter2 != (*iter1).end(); iter2++){cout << *iter2 << " ";}cout << endl;}return 0;
}

四、命名空间

1、 命名空间的作用

1> 多人协同合作时,可能会出现命名污染(命名冲突)

2> 命名空间就相当于给一个取个姓 (张 三)

2 、std命名空间的使用

#include <iostream>//方法3,直接将整个命名空间拿过来,后面的程序就可以不需要加命名空间名以及限定符
//using namespace std;using std::cout;int main()
{//方法1:写上命名空间名字以及作用域限定符//std::cout << "Hello World!" << std::endl;//方法2:使用命名空间里的某个名字,则后面程序中就不需要加命名空间名以及限定符,但是//没有表明的名字,则还要循序方法1cout << "Hello World!" << std::endl;cout << "...." << std::endl;return 0;
}

3、 自定义命名空间的使用

格式: namespace 命名空间名 {

                                                                 数据类型 名字1;

                                                                 数据类型 名字2;

                                                                 数据类型 名字3;

                                                  。。。。 数据类型 名字n;

                                                    }

                      

#include <iostream>using namespace std;namespace Zhangsan
{int cuihua;int age;
}namespace Lisi //可以嵌套
{int cuihua;int age;namespace xiaosan{int age; //作用域不同  可以一级一级找}
}namespace Zhangsan //可以在同一个作用域下定义相同的命名空间
{int b;//int age  //但是要注意,合并,就不能有相同类型的变量名}
using Zhangsan::age; //方法2int main()
{Zhangsan::cuihua = 19;age = 56;Lisi::xiaosan::age = 23;return 0;
}

                               

4、 命名空间的总结

1> 作用:防止命名冲突,命名污染问题

2> std的命名空间的使用,有三种:独立使用、声明某一个名字、声明整个命名空间

3> 自定义命名空间:namespace 空间名{ }

4> 命名空间能够嵌套定义,同一作用域下可以定义多个同名的命名空间

相关文章:

C++课程总复习

一、c的第一条程序 1.cout cout >输出类对象&#xff0c;用来输出的&#xff0c;可以自动识别类型&#xff0c;所以不需要加格式符号 << 插入符&#xff08;输出符号&#xff09; endl 换行>\n #include <iostream> //#预处理 //include 包含 相应的头…...

数据结构—顺序表

目录 1.线性表 2.顺序表概念 3.实现顺序表 (1)声明结构体 (2)初始化 (3)打印数据 (4) 销毁 (5)尾插&头插 尾插 判断是否扩容 头插 (6)尾删&头删 尾删 头删 (7)指定位置插入元素 (8)删除指定位置元素 (9)查找指定元素位置 (10)修改指定位置元素 完整版…...

企业服务器租用对性能有什么要求呢?

企业租用服务器租用首要的是稳定&#xff0c;其次是安全&#xff0c;稳定是为了让企业的工作能够顺利进行&#xff0c;只有性能稳定的服务器才能保证网站之类的正常工作&#xff0c;就让小编带大家看一看有什么要求吧&#xff01; 服务器简单介绍。服务器是在网络上为其它客户机…...

2731.移动机器人

2731. 移动机器人 - 力扣&#xff08;LeetCode&#xff09; 有一些机器人分布在一条无限长的数轴上&#xff0c;他们初始坐标用一个下标从 0 开始的整数数组 nums 表示。当你给机器人下达命令时&#xff0c;它们以每秒钟一单位的速度开始移动。 给你一个字符串 s &#xff0c…...

相交链表Java

给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点&#xff0c;返回 nu11。 以下有两种解决方法: 一种是用Map,利用其key值唯一的方法去判断(也可以使用set,set在add时,已存在的元素会返回false,不存在的返回…...

第二章:OSI参考模型与TCP/IP模型

OSI参考模型与TCP/IP模型 一、OSI参考模型二、TCP/IP模型2.1 四层分法&#xff08;书上&#xff09;2.2 五层分法&#xff08;实际厂商&#xff09;2.3 数据封装和解封装2.3.1 封装2.3.2 解封装2.3.3 TCP/IP分层封装2.3.4 数据封装和解封装过程 一、OSI参考模型 1.物理层 定义电…...

知识图谱04——openGL与ubuntu22.04

跑图神经网络的时候遇到了如下问题 libGL error: failed to load driver: iris libGL error: MESA-LOADER: failed to open iris: /usr/lib/dri/iris_dri.so: 无法打开共享对象文件: 没有那个文件或目录 (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/li…...

如何看待为了省小钱而花费时间

相信每个人都会遇到这种情况&#xff1a;购买东西时想着货比三家或者想办法领优惠券、凑单等就可以省下一些钱&#xff0c;但是需要花费不少时间和精力。这时就开始犹豫了&#xff1a;省钱是必要的&#xff0c;需要居安思危&#xff0c;等到缺钱的时候不会后悔&#xff1b;又想…...

Maven Eclipse

Eclipse 提供了一个很好的插件 m2eclipse &#xff0c;该插件能将 Maven 和 Eclipse 集成在一起。 在最新的 Eclipse 中自带了 Maven&#xff0c;我们打开&#xff0c;Windows->Preferences&#xff0c;如果会出现下面的画面&#xff1a; 下面列出 m2eclipse 的一些特点&a…...

Linux:redis集群(3.*版本 和 5.*版本)搭建方法

介绍 至少6个实例才能组成集群。3主3从会自动分配 Redis集群原理 Redis集群架构 Redis Cluster采用虚拟槽分区&#xff0c;将所有的数据根据算法映射到0~16383整数槽内 Redis Cluster是一个无中心的结构 每个节点都保存数据和整个集群的状态 集群角色 Master&#xff1a;Master…...

正则表达式基础语法

https://tool.oschina.net/regex 正则表达式&#xff1a;检查、匹配字符串的表达式 单个字符匹配&#xff1a; 有特殊含义的匹配&#xff1a; 多次重复匹配&#xff1a; 限定开头结尾的匹配&#xff1a; 贪婪模式&#xff1a;在满足条件的情况下&#xff0c;尽可能多匹配…...

数据库常见面试题--MySQL

梳理面试过程中数据库相关的常见问题&#xff0c;需要说明的是&#xff0c;这篇文章主要是基于MySQL数据库&#xff0c;其他类型的数据库还请自行参考使用。 数据库概述 为什么使用数据库 1、数据库增删改查更方便 2、提供了事务的能力 本质是更好的管理数据。 数据库体系结…...

Springboot 集成 Redis集群配置公网IP连接报私网IP连接失败问题

1、问题&#xff1a;在Springboot 集成 Redis集群配置公网IP连接报私网IP连接失败&#xff0c;一直报私有IP连接失败 14 14:57:49.180 WARN 22012 --- [ioEventLoop-6-4] i.l.c.c.topology.ClusterTopologyRefresh : Unable to connect to [192.168.0.19:6384]: connection …...

解决方案 | 法大大电子签精准击破销售场景签约难题

新商业形态及新交易模式不断涌现&#xff0c;电子签已经成为现代商业活动中不可或缺的一部分。特别是在销售场景中&#xff0c;电子签的应用不仅可以提高销售效率&#xff0c;还可以降低成本&#xff0c;提高客户满意度。本文将详细分析电子签在销售场景中的应用价值能力&#…...

ARM按键中断控制事件

设置按键中断&#xff0c;按键1按下&#xff0c;LED亮&#xff0c;再按一次&#xff0c;灭按键2按下&#xff0c;蜂鸣器响。再按一次&#xff0c;不响按键3按下&#xff0c;风扇转&#xff0c;再按一次&#xff0c;风扇停 src/key_it.c #include"key_it.h" //GPIO初…...

微信小程序之本地生活(九宫格)

文章目录 一.创建项目二.配置修改json三.编写WXML四.编写WXSS五.最终效果 一.创建项目 创建新的项目&#xff0c;名称为&#xff1a;本地生活 二.配置修改json 在app.json中删除其他页面 将index改为grid 自动生成新的文件 添加自己的轮播图片 源代码&#xff1a; <!--…...

【Linux 安装Kibana 及 Es 分词器安装】

一、客户端Kibana安装 Kibana是一个开源分析和可视化平台&#xff0c;旨在与Elasticsearch协同工作。参考文档 1. 下载并解压缩Kibana 下载路径 选择的版本是和 ElasticSearch 对应&#xff08;7.17.3&#xff09; 下载后上传到Linux 系统中&#xff0c;并放在 /root/ 下&a…...

python-arima模型statsmodels库实现-有数据集(续)-statsmodels-0.9.0版本

python-arima模型statsmodels库实现-有数据集&#xff08;续&#xff09; 这篇博客是上一篇python-arima模型statsmodels库实现的续集&#xff0c;上一篇采用的statsmodels版本应该要高一点&#xff0c;如果使用低版本的statsmodels代码会有bug&#xff0c;这一篇则是针对stat…...

JVM源码剖析之线程的创建过程

说在前面&#xff1a; 对于Java线程的创建这个话题&#xff0c;似乎已经被"八股文"带偏&#xff5e; 大部分Java程序员从"八股文"得知创建Java线程有N种方式&#xff0c;比如new Thread、new Runnable、Callable、线程池等等&#xff5e; 而笔者写下这篇文…...

ansible的介绍安装与模块

目录 一、ansible简介 二、ansible特点 三、Ansible核心组件与工作原理 1、核心组件 2、工作原理 四、ansible的安装 五、ansible 命令行模块 1&#xff0e;command 模块 2&#xff0e;shell 模块 3&#xff0e;cron 模块 4&#xff0e;user 模块 5&#xff0e;group 模…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

Chrome 浏览器前端与客户端双向通信实战

Chrome 前端&#xff08;即页面 JS / Web UI&#xff09;与客户端&#xff08;C 后端&#xff09;的交互机制&#xff0c;是 Chromium 架构中非常核心的一环。下面我将按常见场景&#xff0c;从通道、流程、技术栈几个角度做一套完整的分析&#xff0c;特别适合你这种在分析和改…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...

OCR MLLM Evaluation

为什么需要评测体系&#xff1f;——背景与矛盾 ​​ 能干的事&#xff1a;​​ 看清楚发票、身份证上的字&#xff08;准确率>90%&#xff09;&#xff0c;速度飞快&#xff08;眨眼间完成&#xff09;。​​干不了的事&#xff1a;​​ 碰到复杂表格&#xff08;合并单元…...

倒装芯片凸点成型工艺

UBM&#xff08;Under Bump Metallization&#xff09;与Bump&#xff08;焊球&#xff09;形成工艺流程。我们可以将整张流程图分为三大阶段来理解&#xff1a; &#x1f527; 一、UBM&#xff08;Under Bump Metallization&#xff09;工艺流程&#xff08;黄色区域&#xff…...