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> 命名空间能够嵌套定义,同一作用域下可以定义多个同名的命名空间

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

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

相关文章

php倒叙

在PHP中&#xff0c;可以使用多种方法对数组进行倒序排序。 使用array_reverse()函数&#xff1a;这是最简单的方法&#xff0c;它可以将数组元素的顺序完全颠倒。 $arr [3, 1, 5, 2, 4]; $reversedArr array_reverse($arr); print_r($reversedArr); // 输出&#xff1a;Arra…

Arduino安装esp32-cam以及CameraWebServer实例的实现

目录 1. 硬件2. 软件2.1 arduino下载安装2.2 arduino配置esp32-cam开发板文件2.3 下载相应版本的esp32 3. ESP32-CAM实例&#xff1a;CameraWebServer3.1 选择开发板3.2 选择示例代码进行验证3.3 烧录进行实测 1. 硬件 没买下载主板的可使用usb转串口模块进行烧录&#xff0c;接…

【Linux】UNIX 术语中,换页与交换的区别和Linux 术语中,换页与交换的区别?

UNIX换页和交换的区别 在UNIX中&#xff0c;换页&#xff08;Paging&#xff09;是一种内存管理技术&#xff0c;用于在程序运行时动态地将其代码和数据从磁盘加载到内存中。当程序需要访问的页面不在内存中时&#xff0c;就会发生页错误&#xff08;page error&#xff09;&a…

2023C语言暑假作业day6

1.选择题 1 1、以下叙述中正确的是&#xff08; &#xff09; A: 只能在循环体内和switch语句体内使用break语句 B: 当break出现在循环体中的switch语句体内时&#xff0c;其作用是跳出该switch语句体&#xff0c;并中止循环体的执行 C: continue语句的作用是&#xff1a;在执…

软考 系统架构设计师系列知识点之软件质量属性(4)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之软件质量属性&#xff08;3&#xff09; 所属章节&#xff1a; 第8章. 系统质量属性与架构评估 第2节. 面向架构评估的质量属性 相关试题 3. 某公司欲开发一个在线交易系统。在架构设计阶段&#xff0c;公司的架构师…

小程序:下拉刷新+上拉加载+自定义导航栏

下拉刷新 &#xff1a; <scroll-view scroll-y"true" 允许纵向滚动 refresher-enabled"true" 开启自定义下拉刷新 默认为false :refresher-triggered&quo…

【uniapp+uView框架】验证码倒计时代码

<view class"code-btn flex flex-center" click"getCode"> {{countdown}}<u-verification-code :seconds"60" ref"uCode" change"codeChange"></u-verification-code> </view>// 保存倒计时提示 co…

iOS 获取模拟器沙盒路径

xcrun simctl get_app_container booted Bundle Identifier data

WorkPlus定制化的局域网会议软件,提供安全稳定的会议体验

在现代商业环境中&#xff0c;迅速而高效的沟通是企业成功的关键要素之一。而在传统的会议模式下&#xff0c;时间成本和地理限制往往给企业带来不小的困扰。针对这一问题&#xff0c;WorkPlus推出了一款创新的局域网会议软件——WorkPlus Meet&#xff0c;旨在为企业创造高效的…

数据集笔记:分析OpenCellID 不同radio/ create_time update_time可视化

1 读取数据 &#xff08;以新加坡的cellID为例&#xff09; import geopandas as gpd import pandas as pdopencellidpd.read_csv(OpenCellID_SG.csv,headerNone,names[radio,mcc,net,area,cell,unit,lon,lat,range,samples,changeable1,created1,updated,AveSignal]) opence…

【数据库问题】删除数据库失败,提示:there is 1 other session using the database

删除数据库失败&#xff0c;提示&#xff1a;there is 1 other session using the database 解决办法&#xff1a; SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datnametest_database AND pid<>pg_backend_pid(); 使用上述命令先关…

wireshark抓rtp包,提取出H265裸流数

调试rtsp收发流时&#xff0c;经常会需要抓包以确认是网络问题还是程序问题还是其它问题。通过tcpdump或者wireshark抓到的包通常是rtp流&#xff0c;保存为.pcap格式文件后中&#xff0c;可通过wireshark进行解析&#xff0c;得出h264裸流&#xff0c;并保存为文件。 1.wires…

淘宝天猫商品评论数据接口,淘宝天猫商品评论API接口,淘宝API

淘宝商品评论数据接口可以通过淘宝开放平台API获取。 通过构建合理的请求URL&#xff0c;可以向淘宝服务器发起HTTP请求&#xff0c;获取商品评论数据。接口返回的数据一般为JSON格式&#xff0c;包含了商品的各种评价信息。获取到商品评论数据后&#xff0c;可以对其进行处理…

stm32 hal库 st7789 1.54寸lcd

文章目录 前言一、软件spi1.cubemx配置2.源码文件 二、硬件spi1.cubemx配置2.源码文件3.小小修改 总结 前言 1.54寸lcd 240*240 一、软件spi 1.cubemx配置 一定要注意把这几个东西上拉。 使用c8 2.源码文件 我使用的是中景园的源码&#xff0c;他本来是是标准库的稍微修改…

cJson堆内存释放问题

cJSON_Delete()&#xff0c;是用来释放json对象的&#xff0c;释放父JSON对象后&#xff0c;子JSON对象也会被释放。 CJSON_free()&#xff0c;是用来释放其他对象的。 int main(void) {cJSON* cjson_test NULL;cJSON* cjson_address NULL;cJSON* cjson_skill NULL;char* s…

【深入了解操作系统进程:它们的角色、管理和重要性】

在计算机科学和操作系统中&#xff0c;进程是一个核心概念&#xff0c;负责管理和执行程序。本文将深入探讨操作系统进程&#xff0c;包括它们的角色、管理方式以及在计算机系统中的重要性。 什么是进程&#xff1f; 进程是操作系统中的一个基本概念&#xff0c;它代表正在运…

《Unity Shader 入门精要》笔记04

开始Unity Shader学习之旅 顶点/片元着色器的基本结构ShaderLab中属性类型和Cg变量类型的匹配关系Unity提供的内置文件和变量Unity支持的语义 顶点/片元着色器的基本结构 Shader "MyShaderName"{Properties{//属性}SubShader{//针对显卡A的SubShaderPass{//设置渲染…

docker入门加实战—docker常见命令

docker入门加实战—docker常见命令 在介绍命令之前&#xff0c;先用一副图形象的展示一下docker的命令&#xff1a; 常见命令 docker的常见命令和文档地址如下表&#xff1a; 命令说明文档地址docker pull拉取镜像docker pulldocker push推送镜像到DockerRegistrydocker pus…

模拟pdf运行js脚本触发xss攻击及防攻击

一、引入pdfbox依赖 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>3.0.0</version> </dependency> 二、生成一个带js脚本的pdf文件 //Creating PDF document object PDDocum…

在RabbitMQ中使用新的MQTT 5.0功能

MQTT是物联网&#xff08;IoT&#xff09;的标准协议&#xff0c;是轻量级的&#xff0c;协议头很小&#xff0c;可以节省网络带宽。MQTT也很有效&#xff0c;与其他消息传递协议相比&#xff0c;客户端通过更短的握手进行连接和身份验证。 以下是本文介绍的MQTT 5.0功能列表&…