C++——命名空间、输入、输出
在我们接触C++之前,C语言中有时候会有使用全局变量,全局变量在使用过程中可能会发生冲突,这个冲突有时会是我们与库之间的冲突,有时又会是我们自己定义的之间的冲突,那么这时候命名空间的出现将很好的解决这个问题,下面我们来学习一下这个知识点
命名空间我们从这个定义的名字就不难看出,这是将标识符的名称进行本地化,也就是为这些变量建立一个域,来限制其作用的空间,而namespace关键字就是针对这一情况
#include <stdio.h>
#include <stdlib.h>
int rand = 100;int main()
{printf("%d\n", rand);return 0;
}
//rand是一个函数,而我们在主函数外又定义了rand变量为100,这时计算机不知道使用哪个
命名空间的定义
首先使用关键字namespace后面跟命名空间stu,然后跟一对大括号'{ }',而{}中的即为命名空间s的成员,命名空间中可以定义变量、函数、类型;
同时命名空间也是可以嵌套的
//命名空间内可以定义变量、函数、类型namespace stu
{int a;int max(int num1,int num2){return num1>num2?num1:num2;}struct student{char name[6];int age;}
}//命名空间可以嵌套定义
namespace my_std
{int num3;namespace stu{int a;int max(int num1,int num2){return num1>num2?num1:num2;}struct student{char name[6];int age;}}
}//命名空间是可以存在多个相同名字的命名空间的,编译器最后会合成同一个
namespace s1
{int a;int b;
}
namespace s1
{int c;int d;
}//编译器合成后
namespace s1
{int a;int b;int c;int d;
}
注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中
当我们展开一个命名空间时,也就意味着将该空间内的内容放在了全局中,这也是我们经常见到有些代码一开始就写上using namespace std; 这句意味着将std标准库内的内容展开,我们在使用库里的例如cout时就可以直接使用,否则我们则需要这样写std::cout。当然我们也可以指定展开例如:using std::cout;这样只需要在开头写上后面都可以正常使用。
输入、输出
在C中我们使用scanf()与printf()来实现标准输入输出,在C++中我们使用cin和cout来实现输入输出,例如
#include <iostream>
using namespaced std;
//using std::cin; 只使用标准库中的cinint main()
{int x;cin >> x;cout << x <<endl;
}
在这里输入和输出“可以自动识别类型”,当然这里自动识别类型是经过重载实现的,这个在后期我们会进行学习。
缺省参数
首先缺省参数必须是常量或全局变量,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的 形参列表(参数个数、类型、类型顺序)不同,返回值没有要求。

注意半缺省:从右往左缺省参数
从左往右传实参
当在传实参的时候不传使用默认参数,当你传参时,则用传过去的参数。
另外函数缺省参数写在声明中。
相关文章:
C++——命名空间、输入、输出
在我们接触C之前,C语言中有时候会有使用全局变量,全局变量在使用过程中可能会发生冲突,这个冲突有时会是我们与库之间的冲突,有时又会是我们自己定义的之间的冲突,那么这时候命名空间的出现将很好的解决这个问题&#…...
解锁滴滴ES的性能潜力:JDK 17和ZGC的升级之路
前文介绍了滴滴自研的ES强一致性多活是如何实现的,其中也提到为了提升查询性能和解决查询毛刺问题,滴滴ES原地升级JDK17和ZGC,在这个过程中我们遇到了哪些问题,怎样解决的,以及最终上线效果如何,这篇文章就…...
Permutation and Primes 2023牛客暑期多校训练营8 J
登录—专业IT笔试面试备考平台_牛客网 题目大意:给出一个数n,要求构造一个n的排列,满足相邻两个数的差或和是一个奇质数 2<n<1e5 思路:要满足相邻数的差或和是奇质数的话只有三种情况,要么当前数a[i]a[i-1]pr…...
centos如何配置IP地址?
CentOS如何查看和临时配置IP地址 CentOS系统中,可以通过使用ifconfig命令来查看当前本机的IP地址信息。输入ifconfig即可显示当前网络接口的IP地址、网络掩码和网关信息。如果需要设置临时IP地址,可以使用ifconfig命令后接网卡名称和需要设置的IP地址、网…...
git clone 报错Filename too long
1.使用git clone代码,爆出Filename too long错误 2.原因分析 因为我很少看git clone日志,所以从未想过是clone异常,而且也看到代码clone下来了,所以我就显然以为代码clone成功,但是使用idea打开代码后发现大量代码无法…...
【雕爷学编程】Arduino动手做(184)---快餐盒盖,极低成本搭建机器人实验平台3
吃完快餐粥,除了粥的味道不错之外,我对个快餐盒的圆盖子产生了兴趣,能否做个极低成本的简易机器人呢?也许只需要二十元左右 知识点:轮子(wheel) 中国词语。是用不同材料制成的圆形滚动物体。简…...
redis String类型命令
Redis的String类型是一种简单的键值对数据结构,常用的String类型命令有: SET key value:设置指定key的值为value。GET key:获取指定key的值。DEL key:删除指定key及其对应的值。INCR key:将指定key的值加1…...
Blazor 简单组件(0):简单介绍
文章目录 前言说明环境安装 前言 Blazor 这个技术还是比较新,相关的UI组件还在完善,我这里提供一下我个人的组件开发。 说明 本UI组件是基于BootstrapBlazor(以下简称BB)开发。 BootstrapBlazor 文档 环境安装 C#小轮子:Visual Studio自…...
在vue3+vite项目中使用jsx语法
如果我掏出下图,阁下除了私信我加入学习群,还能如何应对? 正文开始 前言一、下载资源二、利用vite工具引入babel插件总结 前言 最近在为部署人员开发辅助部署的工具,技术栈是vue3viteelectron,在使用jsx语法时&#x…...
HCIA 路由器工作原理 及其 静态路由配置
目录 1、路由器工作原理 2、获取未知网段的方法: 3、静态路由 1)写法: 2)扩展配置 a、环回接口 配置命令: 环回接口的作用: b、手工汇总 手工汇总作用: c、路由黑洞 d、缺省路由 配置…...
【Git】—— git的配置
目录 (一)忽略特殊⽂件 (二)给命令配置别名 (一)忽略特殊⽂件 在⽇常开发中,我们有些⽂件不想或者不应该提交到远端,⽐如保存了数据库密码的配置⽂件,那怎么让Git知道呢…...
[git] git基础知识
git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目 git易于学习,性能极快 什么是版本控制? 版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况,可以记录文件修改历史…...
【从零学习python 】15.深入了解字符串及字符集编码
文章目录 字符集字符和编码相互转换编码规则 学习目标成员运算符in运算符not in 运算符 进阶案例 字符集 计算机只能处理数字(其实就是数字0和数字1),如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bi…...
【LeetCode】打家劫舍||
打家劫舍|| 题目描述算法分析编程代码 链接: 打家劫舍|| 在做这个题之前,建议大家做一下这个链接: 按摩师 我的博客里也有这个题的讲解,名字是按摩师 题目描述 算法分析 编程代码 class Solution { public:int maxrob(vector<int>nums,int left,…...
【Nginx】Nginx的重定向——location
location 匹配URI location 匹配的规则和优先级;***重点 nginx常用的变量;要求掌握 rewrite 重定向;掌握/理解 location匹配:*** 正则表达式:匹配的是文件内容 常见的正则表达式:…...
每日一题——滑动窗口的最大值
滑动窗口的最大值 题目链接 暴力解法 最容易想到的当然还是通过两层循环来暴力求解:一层循环用来移动窗口,一层循环用来在窗口内找到最大值。这种做法的时间复杂度为O(kN),会超出时间限制,因此,我们要找到更加高效的…...
【使用go开发区块链】之获取链上数据(03)
上篇文章,我们完成了数据库的连接,本章节,我们将完成ethclient的配置以及初始化 1、ethclient配置 1.1、安装go-ethereum 在命令行终端输入下面代码安装: go get github.com/ethereum/go-ethereum1.2、Ethclient配置 1.2.1、新…...
js 动态设置transformOrigin
transformOrigin属性用于指定元素变换的原点。 // 获取要设置的元素 const element document.getElementById(your-element-id);// 设置transformOrigin属性 element.style.transformOrigin 50% 50%; // 以元素中心为原点// 或者使用变量来设置 const x 0; // x坐标 const …...
docker使用tab无法自动补全命令
本文参考链接 一、安装bash-complete 在线安装 yum install -y bash-completion二、刷新文件 source /usr/share/bash-completion/completions/docker source /usr/share/bash-completion/bash_completion...
既然jmeter也能做接口自动化,为什么还需要pytest自己搭框架?
今天这篇文章呢,我会从以下几个方面来介绍: 1、首先介绍一下pytest框架 2、带大家安装Pytest框架 3、使用pytest框架时需要注意的点 4、pytest的运行方式 5、pytest框架中常用的插件 一、pytest框架介绍 pytest 是 python 的第三方单元测试框架&a…...
Python标注工具避坑清单(2024最新版):12个被低估的边界场景+7种实时校验机制设计
更多请点击: https://intelliparadigm.com 第一章:Python自动驾驶数据标注工具的演进与核心挑战 随着自动驾驶技术从L2向L4级加速演进,高质量、高一致性、高时效性的感知数据标注已成为模型训练的瓶颈环节。早期基于OpenCVNumPy的手动框选…...
STM32F407串口调试避坑指南:从CubeMX配置到HAL库中断收发,这些细节错了真调不通
STM32F407串口调试避坑指南:从CubeMX配置到HAL库中断收发实战解析 调试STM32串口通信就像在迷宫中寻找出口——看似简单的路径背后隐藏着无数可能让你停滞不前的陷阱。本文将带你穿越这片技术丛林,用工程师的视角剖析那些手册上不会明确标注,…...
RWKV7-1.5B-world惊艳效果:输入‘请用中英双语介绍RWKV7-1.5B-world模型‘→完美执行
RWKV7-1.5B-world惊艳效果:输入请用中英双语介绍RWKV7-1.5B-world模型→完美执行 1. 模型概览 RWKV7-1.5B-world是基于第7代RWKV架构的轻量级双语对话模型,拥有15亿参数。这个模型采用了一种创新的线性注意力机制,替代了传统Transformer的自…...
告别复杂命令!在OpenWRT管理界面里一键安装配置cpolar,实现N1软路由远程访问
零命令行操作:OpenWRT图形界面全流程配置cpolar内网穿透 手里那台斐讯N1刷了OpenWRT后,你是不是也遇到过这样的困扰?想在外网访问家里的软路由管理页面,却被SSH命令行劝退。其实从软件包安装到隧道配置,整个过程都能在…...
Vite打包压缩插件vite-plugin-pack-orchestrator,自动搞定压缩、校验、自动哈希命名
📦 Vite 构建压缩插件:vite-plugin-pack-orchestrator 🤔 为什么又造一个轮子? 市面上已经有一些 Vite 打包插件,比如 vite-plugin-zip-pack、vite-plugin-compress 等,能用,但总差那么点意思…...
基于RAG架构的电信智能运维系统设计与优化
1. 电信网络运维中心的智能化转型挑战现代电信运营商面临着一个核心矛盾:用户对网络服务质量的要求越来越高,而传统人工运维模式却难以跟上这种需求。网络运维中心(NOC)的技术人员每天需要处理海量告警信息,从数以千计…...
5分钟学会LongCat-Image-Edit:上传图片输入提示词,等待生成结果
5分钟学会LongCat-Image-Edit:上传图片输入提示词,等待生成结果 1. 快速了解LongCat-Image-Edit 你有没有遇到过这样的情况:拍了一张完美的照片,但想修改其中的某个细节?比如把照片里的猫换成狗,或者给产…...
LFM2.5-1.2B-Instruct一文详解:28T训练预算带来的小模型高泛化能力
LFM2.5-1.2B-Instruct一文详解:28T训练预算带来的小模型高泛化能力 1. 模型概述与核心优势 LFM2.5-1.2B-Instruct是一个参数量仅为1.2B的轻量级指令微调大语言模型,由Liquid AI和Unsloth团队联合开发。这个模型最引人注目的特点是:用28T to…...
vulhub系列-34-Os-ByteSec(超详细)
免责声明:本文记录的是 Os-ByteSec 渗透测试靶机 的解题过程,所有操作均在 本地授权环境 中进行。内容仅供 网络安全学习与防护研究 使用,请勿用于任何非法用途。读者应遵守《网络安全法》及相关法律法规,自觉维护网络空间安全。目…...
盟接之桥®制造业EDI软件:从Forecast到Invoice,打通供应链的“任督二脉”
在全球制造业数字化转型的浪潮中,供应链的协同效率直接决定了企业的竞争力。对于汽车零部件、机械制造、电子电器等行业的制造企业而言,电子数据交换(EDI)已不再是“锦上添花”的选项,而是进入全球顶级供应链体系的“入…...
