C++入门-day01
一、认识C++
C++融合了三种不同的编程方式
- C代表的过程性语言
- 在C基础上添加的类、结构体puls代表的面向对象语言
- C++模板支持泛型编程
C++完全兼容C的特性
Tips:侯捷老师提倡的Modren C++是指C++11、C++14、C++17和C++20这些新标准所引入的一系列新特性和改进。在我们练习的时候也应当去使用C++11的语法。
1. #include 头文件
在C++11中头文件是这个样子
#include <iostream>
替代了在C中我们经常使用的
#include <stdio.h>
如果需要使用标准C中的库,可以这样:
#include <cstdio>
2. 主函数
跟C一样
int main(){
return 0;
}
二、命名空间
命名空间主要是解决在大型项目中,函数,变量名冲突的问题
如下图所示,如果没有命名空间,命名相同的变量和函数,是会冲突的,而命名空间就好像一个隔离容器,如果要使用A中的sort函数只需,A::sort();即可。
这里的 :: 是叫域作用操作符
看个代码:
#include<iostream>
namespace yy{int a=0;int big(int a,int b){return a>b?a:b;}
}
int main(){std::cout<<yy::a<<std::endl;std::cout<<yy::big(30,17)<<std::endl;return 0;
}
按照上面的理解,你一定已经知道yy::a 和 yy::big(30,17)的意思了,
但是对于std::cout<< <<std::endl,一定会不知所云。
回忆C语言中,一个程序只要运行就会创建的三个流:
- stdin - 标准输入流(键盘)
- stdout - 标准输出流(屏幕)
- stderr - 标准错误流(屏幕)
而这里std::cout,你或许已经猜到了,std是个命名空间,cout应该是定义在std里面的一个东西。
事实上,std是C++的标准命名空间,C++标准程序库中的所有标识符都被定义在std中
而cout就是C++的标准输出流
你可以把<<理解为流动方向,把yy::a的值流向标准输出流,也就是在屏幕中打印出来,而<<std::endl 就是把std中的endl也流到标准输出流中。endl就是换行加刷新缓冲区的意思
简而言之, std::cout<<yy::a<<std::endl,与C中 printf("%d\n",a) 有异曲同工之妙。
此时,你会觉得,打印一个东西这么麻烦,还要打这么多字符,
其实,可以简化成这样。
cout<<yy::a<<endl只需在你主函数之前声明你要使用这个命名空间,有两种实现方式,推荐第一种。
using std::cout using std::endlusing namespace std
注:
- 命名空间只能全局范围内定义
- 命名空间可以嵌套定义
相关文章:
C++入门-day01
一、认识C C融合了三种不同的编程方式 C代表的过程性语言在C基础上添加的类、结构体puls代表的面向对象语言C模板支持泛型编程 C完全兼容C的特性 Tips:侯捷老师提倡的Modren C是指C11、C14、C17和C20这些新标准所引入的一系列新特性和改进。在我们练习的时候也应当去…...
Android开源 Skeleton 骨架屏 V1.3.0
目录 一、简介 二、效果图 三、引用 Skeleton 添加jitpack 仓库 添加依赖: 四、新增 “块”骨架屏 1、bind方法更改和变化: 2、load方法更改和变化: 五、关于上一个版本 一、简介 骨架屏的作用是在网络请求较慢时,提供基础占位&…...
网络资料搬运(2)
(1) Ubuntu 22.04: 为 Ubuntu22.04 系统添加中文输入法 linux解压gz文件的命令 Ubuntu20.04出现Unit ssh.service could not be found 详解使用SSH远程连接Ubuntu服务器系统 Configuring networks(配置网络) (2) Python && OpenCV: …...
SEO搜索引擎
利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名,吸引更多的用户访问网站,提高网站的访问量,提高网站的销售能力和宣传能力,从而提升网站的品牌效应 搜索引擎优化的技术手段 黑帽SEO 通过欺骗技术和滥用搜索算法来推销毫不…...
动态规划-状态机(188. 买卖股票的最佳时机 IV)
状态分类: f[i,j,0]考虑前i只股票,进行了j笔交易,目前未持有股票 所能获得最大利润 f[i,j,1]考虑前i只股票,进行了j笔交易,目前持有股票 所能获得最大利润 状态转移: f[i][j][0] Math.max(f[i-1][j][0],f[…...
银行业务队列简单模拟(队列应用)
设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时…...
2023/8/8 下午10:42:04 objectarx
2023/8/8 下午10:42:04 objectarx 2023/8/8 下午10:42:16 ObjectARX(AutoCAD Runtime Extension)是用于开发和自定义AutoCAD软件的编程接口。ObjectARX允许开发者使用C++、.NET等编程语言来创建插件、扩展功能和定制化AutoCAD的行为。 通过ObjectARX,开发者可以访问Auto…...
Day-06 基于 Docker安装 Nginx 镜像
1.去官方公有仓库查询nginx镜像 docker search nginx 2.拉取该镜像 docker pull nginx 3. 启动镜像,使用nginx服务,代理本机8080端口(测试是不是好使) docker run -d -p 8080:80 --name nginx-8080 nginx docker ps curl 127.0.0.1:8080...
linux入门---信号的保存和捕捉
目录标题 信号的一些概念信号的保存pending表block表handler表 信号的捕捉内核态和用户态信号的捕捉 信号的一些概念 1.进程会收到各种各样的信号,那么程序对该信号进行实际处理的动作叫做信号的递达。 2.我们之前说过当进程收到信号的时候可能并不会立即处理这个信…...
5.外部中断
中断初始化配置步骤: IO口初始化配置 开启中断总允许EA 打开某个IO口的中断允许 打开IO口的某一位的中断允许 配置该位的中断触发方式 中断函数: #pragma vector PxINT_VECTOR __interrupt void 函数名(void){}#pragma vector PxINT_VECTOR __int…...
Mydb数据库问题
1、请简要介绍一下这个基于 Java 的简易数据库管理系统。它的主要功能是什么? TM(Transaction Manager):事务管理器,用于维护事务的状态,并提供接口供其他模块查询某个事务的状态。DM(Data Man…...
部署并应用ByteTrack实现目标跟踪
尽管YOLOv8已经集成了ByteTrack算法,但在这里我还是想利用ByteTrack官网的代码,自己实现目标跟踪。 要想应用ByteTrack算法,首先就要从ByteTrack官网上下载并安装。虽然官网上介绍得很简单,只需要区区6行代码,但对于国…...
MacOS怎么配置JDK环境变量
1 输入命令看是否配置了JDk 的环境变量:echo $JAVA_HOME 要是什么也没输出 证明是没配置 2 输入命令编辑 sudo vim ~/.bash_profile 然后按 i ,进入编辑模式,粘贴下面的代码,注意:JAVA_HOME后面路径需要改成自己的版…...
Spring Boot 开发16个实用的技巧
当涉及到使用Spring Boot开发应用程序时,以下是16个实用的技巧: 1. **使用Spring Initializr**:Spring Initializr是一个快速创建Spring Boot项目的工具,可以帮助您选择项目依赖和生成项目骨架。 2. **自动配置**:Sp…...
《机器学习实战》学习记录-ch2
PS: 个人笔记,建议不看 原书资料:https://github.com/ageron/handson-ml2 2.1数据获取 import pandas as pd data pd.read_csv(r"C:\Users\cyan\Desktop\AI\ML\handson-ml2\datasets\housing\housing.csv")data.head() data.info()<clas…...
lv7 嵌入式开发-网络编程开发 07 TCP服务器实现
目录 1 函数介绍 1.1 socket函数 与 通信域 1.2 bind函数 与 通信结构体 1.3 listen函数 与 accept函数 2 TCP服务端代码实现 3 TCP客户端代码实现 4 代码优化 5 练习 1 函数介绍 其中read、write、close在IO中已经介绍过,只需了解socket、bind、listen、acc…...
mysql技术文档--阿里巴巴java准则《Mysql数据库建表规约》--结合阿丹理解尝试解读--国庆开卷
阿丹: 国庆快乐呀大家! 在项目开始前一个好的设计、一个健康的表关系,不仅会让开发变的有趣舒服,也会在后期的维护和升级迭代中让系统不断的成长。那么今天就认识和解读一下阿里的准则!! 建表规约 表达是…...
Qt+openCV学习笔记(十六)Qt6.6.0rc+openCV4.8.1+emsdk3.1.37编译静态库
前言: 有段时间没来写文章了,趁编译库的空闲,再写一篇记录文档 WebAssembly的发展逐渐成熟,即便不了解相关技术,web前端也在不经意中使用了相关技术的库,本篇文档记录下如何编译WebAssembly版本的openCV&…...
JUC第十四讲:JUC锁: ReentrantReadWriteLock详解
JUC第十四讲:JUC锁: ReentrantReadWriteLock详解 本文是JUC第十四讲:JUC锁 - ReentrantReadWriteLock详解。ReentrantReadWriteLock表示可重入读写锁,ReentrantReadWriteLock中包含了两种锁,读锁ReadLock和写锁WriteLockÿ…...
在vue3中使用vite-svg-loader插件
vite-svg-loader插件可以让我们像使用vue组件那样使用svg图,使用起来超级方便。 安装 npm install vite-svg-loader --save-dev使用 import svgLoader from vite-svg-loaderexport default defineConfig({plugins: [vue(), svgLoader()] })组件里使用 在路径后加…...
香港科技大学(广州)的研究者如何让AI记忆力翻倍
这项由香港科技大学(广州)主导的研究成果发表于2026年第43届国际机器学习大会(ICML 2026),会议地点为韩国首尔,论文收录于PMLR第306卷。论文预印本编号为arXiv:2605.05838,有兴趣深入了解的读者…...
轻量级日志聚合器Shiplog:中小团队分布式日志管理实践
1. 项目概述:一个为开发者打造的轻量级日志聚合器如果你是一名后端开发者,或者正在维护一个分布式微服务系统,那么对“日志”这个词一定又爱又恨。爱的是,它是排查线上问题的唯一“时光机”;恨的是,当服务实…...
ArcGIS Pro新手教程:用‘创建常量栅格’和‘镶嵌’工具,5步精准提取中国区域气温NC数据
ArcGIS Pro精准提取中国区域气温数据的5步进阶指南 当全球气象数据遇上区域研究需求,如何高效提取目标范围信息成为地理信息科学领域的常见挑战。以中国陆地区域气温分析为例,传统方法往往面临数据冗余、边界锯齿和格式转换三大痛点。本文将揭示一套基于…...
无人机+点云+Civil3D:无控制点场景下的高精度土方算量实战
1. 无人机航测在复杂地形土方算量中的优势 石头山这类复杂地形一直是工程测绘的难点。传统全站仪测量需要测绘人员翻山越岭布设控制点,不仅效率低下,还存在安全隐患。而无人机航测就像给工程装上了"天眼",特别适合解决这类难题。 去…...
STM32模拟I2C驱动TCS34725实现环境光与颜色识别
1. 环境光与颜色识别的硬件搭档 当我们需要让设备感知周围环境的光线强弱,或者识别物体的具体颜色时,TCS34725这颗传感器绝对是性价比之选。它不仅能测量环境光强度,还能通过RGB三原色的比例来判断颜色,这在智能家居和工业检测中特…...
企业级ai应用如何通过taotoken实现稳定低成本的多模型调用
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业级AI应用如何通过Taotoken实现稳定低成本的多模型调用 在构建面向生产环境的企业级AI应用时,开发团队常常面临两个…...
混合信号示波器(MSO)在嵌入式调试中的核心应用与选型指南
1. 混合信号示波器:嵌入式调试的“瑞士军刀”如果你在2015年那个春天走进波士顿的嵌入式系统大会(ESC Boston),会发现一个明显的趋势:工程师们调试板子的工具,正从传统的逻辑分析仪,悄然转向一种…...
ORAN专题系列-8:5G O-RAN Option7分体式小基站硬件白盒化的关键组件与部署场景剖析
1. 5G O-RAN Option7分体式架构的核心价值 第一次接触O-RAN Option7架构时,最让我惊讶的是它像乐高积木一样的模块化设计。这种分体式架构把传统基站拆解成三个独立部件:负责智能调度的O-DU(分布式单元)、承担信号转换的O-RU&…...
Naftis社区贡献指南:如何参与这个开源Istio项目
Naftis社区贡献指南:如何参与这个开源Istio项目 【免费下载链接】naftis An awesome dashboard for Istio built with love. 项目地址: https://gitcode.com/gh_mirrors/na/naftis Naftis是一个基于Apache 2.0协议开源的Istio仪表板项目,专为简化…...
跨平台的Web应用快速开发框架
跨平台的Web应用快速开发框架。该框架提供了一套标准化的项目结构规范、统一的API接口命名规则、规范化的前后端代码,支持基于同一套设计规范Python(Flask/Django)、PHP、Java(SpringBoot/SSM)等多种后端语言代码 &…...
