【C++入门编程常见问题】(小白必看)

news2024/10/6 10:27:48

常见问题

vsstudio快捷键

快速注释组合键 ctrl+k + ctrl+c

取消注释快捷键 ctrl+k + ctrl + u

支持垃圾回收机制

大多数面向对象编程语言具有垃圾回收机制。早期的C++语言不具备垃圾回收机制,这意味着申请的内存资源在使用完成后,需要程序员自己释放。直到C++11标准诞生,提出了智能指针新特性,实现了内存资源的自动管理,使得指针的使用更加灵活,并避免了内存泄漏问题。

iostream和命名空间std的作用?

iostream

std 就是一个命名空间,对象函数很多都是在这里面定义的 用之前调用

三种方式:

1)using namespace std; //引用标准命名空间std

using std::cout;
using std::endl;

std::cout << “123\n”<<std::endl;;

#include<bits/stdc++.h>
#include<iostream> //标准输入/输出头文件iostream
using namespace std; //引用标准命名空间std

int main()
{
    cout << "hello" << endl;
    //cout是预定义的输出流对象,用于输出数据
    //endl表示换行
	return 0;
}

或者如果不使用命名空间std;

using std::cout;
using std::endl;

效果相同

#include<bits/stdc++.h>
#include<iostream>
//using namespace std;
using std::cout;
using std::endl;
int main()
{
    cout << "123\n";
    return 0;
}

cout和endl的功能?

cout是c++语言的输出符号。endl是程序的结束符。

cout<<endl是使程序输出结束(有使输出结果换行的功能)

iostream.h

一个非标准的输入输出流 .h的头文件是c语言格式的

和iostrem的区别是存不存在在std命名空间中

iostream

是标准输入输出流,C++规范的,带有名称空间的头文件 包含在std名字空间中

而iostream流里面又包含cin和cout输入输出对象,所以使用cout的时候必须加std::

通过刚才的比较我们了解到iostream是c++的头文件,而iostreamh是C语言格式的头文件,由于C++格式的iostream是规范的带有名字空间的头文件,所以在使用iostream标准库中的cout对象时要加上名字空间标识符std,而c格式的非标准的输入输出流iostream.h则不用

也就是说从C++开始方才真正引入了名字空间这个新概念,那么名字空间的作用究竞是什么呢?

C++里引入名字空间(namespace)的目的是为了避免和减少命名冲突。一旦一个程序写大了,就很难避免重名,特别是多人合作的情况下。过去C中的解决方法只有靠人为的注意,并自加长名学,以避免重名。这样做会使得一些名字看上去没有意义或者难以理解,而程序员在写程序的时候,也受这个问题的限制,不能自由地命名自己使用的变量或者函数。而有了名字空间(namespace)就不存在这些问题了,这就是C++引入namespace这个概念的好处。

举一个形象的例子

有两个学生,一个叫小王,一个叫小李,他们都各自拥有一本相同的语文书,为了区分这两本书,他们就要在书的封皮上写上自己的名字一小王或者小李。同理,我们调用 cout 对象时也要在前边写上 cout 所属的命名空间“std::”,而在代码里加“using namespace std”,就可以不用再加“std::”。但是最好的方法就是不用“using namespace std”,而是用using std::cout;这样可以避免命名重复,因为不同的名字在不同的命名空间内,将它们都释放出来时,若不小心会造成使用错误库函数中的对象的情况。

在这里插入图片描述

重名问题(多个命名空间)

#include<bits/stdc++.h>
#include<iostream>

namespace a
{
    int b = 1;
}
namespace c {
    int b = 2;
}
int main()
{
   /*此处可以不使用using就可直接调用
   using namespace a;
    using namespace c;*/
   //此处无法成功调用,因为无法判断调用的是哪个b
    std::cout << b;
    int b = 9;

    std::cout << b << " " <<a::b<< " " << " " << c::b << " " << std::endl;
}

判断数据类型typeid().name()

cout << typeid(today).name() << endl;

制表符\n\t\r

\n:表示换行操作,光标会移动到下一行(next line)

\t:表示水平制表空行操作,相当于Tab键,不会换行

\r:相当于回车,相当于光标回到本行首位置,不会换行;

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

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

相关文章

springcloud-alibaba (01)linux下Nacos单节点安装和部署

Nacos 一&#xff0c;下载解压 Nacos二&#xff0c;使用外部存储器&#xff08;可选&#xff09;三&#xff0c;Nacos配置四&#xff0c;防火墙配置五&#xff0c;启动nacos 一&#xff0c;下载解压 Nacos 首先确保你的系统上已经安装了 Java&#xff0c;可以运行以下命令检查&…

B站C语言学习,颠覆谭浩强C语言,可能是最好的C语言视频 【自用笔记】

文章目录 数据类型字符&#xff0c;整型&#xff0c;浮点型sizeof 展示字节大小 变量 常量变量变量&#xff1a;全局变量 /局部变量变量的使用变量的作用域和生命周期 常量const修饰的常变量#define定义的标识符常量枚举常量 数据类型字符&#xff0c;整型&#xff0c;浮点型si…

[LitCTF 2023] crypto,pwn,rev

这个比赛有巨多的题&#xff0c;而且基本上都很简单&#xff0c;队里答疯了。其实没大意思&#xff0c;本来不想写了&#xff0c;可又没啥可写&#xff0c;这周也就干点这个&#xff0c;算是放松吧。 Crypto 1,HEX 略 2,梦想是红色的&#xff0c;略 3&#xff0c;原来你也玩…

es7.x 通过java api实现常规操作

一 es7.x 1.1 配置pom文件 <dependencies><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.8.0</version></dependency><!-- elasticsearch的客户端 -->&…

Springboot启动失败 DB连不上竟然是maven配置的问题

Springboot启动失败&#xff1a;Failed to instantiate [javax.sql.DataSource]。 最开始以为是DB版本后&#xff0c;需要升级驱动版本&#xff0c;但更新驱动版本还是不行&#xff0c;而且另外一个项目同样驱动同样配置可以启动。 后面发现代码读取不到yml文件中的配置信息。…

zigbee MQTT控制小米蓝牙插座开和关 型号Xiao Mi zigbee ZNCZ02LM 或支持zigbee的插座或设备

zigbee MQTT控制小米蓝牙插座开和关 型号Xiao Mi zigbee ZNCZ02LM 或支持zigbee的插座或设备 硬件准备 小米蓝牙插座&#xff0c;型号: Xiao Mi zigbee ZNCZ02LM 或支持zigbee的插座或设备 zigbee设备&#xff0c;型号: CC2531设备 参考链接: https://github.com/Koenkk/zi…

Linux高并发服务器开发01:Linux系统编程入门

GCC 什么是GCC GCC工作流程 GCC常用的参数选项 GCC和G的区别 静态库 什么是库 静态库的制作 先编译生成对应的.o文件 gcc -c add.c sub.c mult.c div.c -I …/include/ 再将.o文件打包成静态库 ar rcs libcalc.a add.o sub.o mult.o div.o 使用的时候-l指定库名称 gcc main.c…

[C++]AVL树、红黑树以及map、set封装

目录 前言&#xff1a; 1 AVL树 1.1 AVL树的概念 1.2 AVL树结点的定义 1.3 AVL树插入 1.4 插入结点的调整 1.5 AVL树的旋转调整 1.5.1 右单旋 1.5.2 左单旋 1.5.3 左右双旋 1.5.4 右左双旋 1.5.4种旋转的判断方式 2 红黑树 2.1 红黑树概念 2.2 红黑树与AVL树的比…

路径规划算法:基于飞蛾扑火算法的路径规划算法- 附代码

路径规划算法&#xff1a;基于飞蛾扑火优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于飞蛾扑火优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化…

Linux基本指令-3

文章目录 一、 d a t e date date [选项] 格式1、常用选项&#xff1a;2、运用实例&#xff1a; 二、 c a l cal cal [选项] [年份]1、常用选项&#xff1a;2、运用实例&#xff1a; 三、 f i n d find find[路径] [ − n a m e ] [-name] [−name] 文件名1、…

消息推送平台有没有保证数据不丢?

我们在使用mq的时候&#xff0c;就会很自然思考一个问题&#xff1a;怎么保证数据不丢失&#xff1f; 现在austin接入层是把消息发到mq&#xff0c;下发逻辑层从mq消费数据&#xff0c;随后调用对应渠道接口来下发消息。 消息推送平台&#x1f525;推送下发【邮件】【短信】【…

001 - STM32固件库编程

STM32固件库编程 一、新建工程文件夹 1、工程文件夹内添加&#xff1a;Project、Libraries、User、Doc&#xff0c;之后在Project目录内新建工程&#xff0c;并将标准库中CMSIS、STM32F4xx_StdPeriph_Driver复制到Libraries中。 2、将\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Pr…

Hbase基础介绍-1 概述

Hbase基础介绍-1 概述 一、概述1、定义&#xff1a;2、特点&#xff1a;3、HBase在Hadoop生态中的地位4、HBase与HDFS5、Hbase与Hive6、关系型数据库与列式数据库7、结构化数据和非结构化数据8、HBase使用场景9、CAP定理10、Hbase与传统关系型数据库的区别 一、概述 1、定义&am…

飞腾D2000 如何修改boot启动项

开机后,按着F2进入如下界面 选择Enter Setup 选择 Boot Maintenance Manager 进入Boot Options 选择Change Boot Order 在这个界面按 键盘上的 Enter 键 在弹出得蓝色小方框里,按键盘的上下键,比如我要把硬盘盘符放在boot 启动项的第一首选项,则移动下键到硬盘盘符上,再…

嵌入式系统入门基础知识分析(二)

目录 ​编辑 1、GPIO原理与结构 2、A/D接口 3、D/A接口基本 4、键盘接口

解密网站401错误:了解发生原因和修复方法

​  每个网站都会有不同的错误码&#xff0c;其中&#xff0c;401错误被认为是相对常见的错误码。那么&#xff0c;什么是网站401错误呢?在摸清了这一点之后&#xff0c;我们也需要学习一下如何解决它。 什么是 401 状态码? 401 状态代码是 Web 服务器发送给浏览器的 HTTP …

【小菜鸡刷题记】--字符串篇

【小菜鸡刷题记】&#xff1a;字符串 剑指 Offer 05. 替换空格剑指 Offer 58 - II.左旋转字符串剑指 Offer 20.表示数值的字符串剑指 Offer 67. 把字符串转换成整数 特此声明&#xff1a;题目均来自于力扣 剑指 Offer 05. 替换空格 题目链接 请实现一个函数&#xff0c;把字符…

【JUC基础】06. 生产者和消费者问题

1、前言 学习JUC&#xff0c;就不得不提生产者消费者。生产者消费者模型是一种经典的多线程模型&#xff0c;用于解决生产者和消费者之间的数据交换问题。在生产者消费者模型中&#xff0c;生产者生产数据放入共享的缓冲区中&#xff0c;消费者从缓冲区中取出数据进行消费。在…

MySQL同时In俩个字段,In多个字段,Mybatis多个In查询问题,Mysql多个IN查询多出数据问题,Mysql多个IN查询 数据准确问题

背景&#xff1a; 今天产品验收的时候&#xff0c;导入了大量数据&#xff1b;发现造价项目某个查询列表数据多出了几条数据&#xff1b;看了Mybatis查询&#xff0c;才发现是同时使用了多个IN查询导致的问题&#xff1b;入参是对象列表&#xff0c;In值是分开循环赋值…

【SpringBoot整合RabbitMQ(上)】

一、简单的生产者-消费者 1.1、创建连接工具类获取信道 public class RabbitMqUtils {public static Channel getChannel() throws IOException, TimeoutException {//创建一个链接工厂ConnectionFactory factory new ConnectionFactory();//工厂IP 链接RabbitMQ的队列facto…