C++学习 <day1-C++介绍基础>

news2025/1/18 7:33:28

一、什么是C++

1. C++介绍

  • C++由程序员控制生命周期(性能提升);
  • C++数据存储等方式由硬件决定(性能提升);

C++11 引入了 type_traits/range;

C++17 删除了 auto_ptr;

二、C++开发环境&相关工具

学习视频(英文会议):

三、C++的编译/链接模型

预处理→编译→汇编→链接

注:  .o文件 即 目标文件

1. 预处理:防止头文件被循环展开 (推荐用法)

即,此头文件只展开一次 once

2. 编译:

编译优化的优点:速度较快

编译优化的缺点:不利于调试

推荐用法:

  • 开发:debug
  • 编译:release

增量编译(build):目标文件比源文件更新则进行编译(若仅修改头文件,推荐使用全部编译(rebuild))

四、C++基础

 1. iostream说明

cerr:通常为错误信息,立即刷新到缓冲区

clog::通常为日志,不需要立即刷新到缓冲区

  • std::flush :执行到此行语句,显式的刷新出来
  • std::endl :刷新且换行

2. 命名空间

namespace NAME
{
    void fun()
    {
        //...
    }
}
void fun()
{
    //全局
}
int mian()
{
    using namespace NAME; //可写在mian外部,但不推荐,易产生冲突
    func();  
    //表示既可以访问全局空间里的内容,也可以访问命名空间NAME里面的内容
}

 3. 结构体

struct Point
{
    int x;
    int y;
    void IncX()
    {
        x = x + 1;    
    } //加入函数,更倾向于类
};
int main()
{
    Point p ;
    p.x;
    p.y;  //访问
    p.IncX();
}

五、对象与基本类型

//<other.cpp>

int g_x;

//<main.cpp>

int g_x;   // 编译出错,提示重复定义
extern int g_x;  //使用extern关键字,可以访问上述文件中的变量,对g_x的声明

 六、数组、vector与字符串

 

 1. 指针初始化

int (*a)[3] = {&x1,&x2,&x3}; //不可以这样进行初始化

int b[3];
int (*a)[3] = &b;  //可以这样进行初始化

2. 声明数组引用

int (&a)[3];//引用

int b[3];
int [&a] = b;//此时a就是数组b的别名

//只能定义数组的引用,不能定义引用数组
int x1;
int x2;
int x3;
int &[3] = {x1,x2,x3}; //这种写法错误

3. 数组的引用

int a[3] = {1,2,3};

auto b = a;

std::cout << std::is_name_v<decltype(b),int*> << std::endl;
std::cout << *b <<std::endl; //b的地址
std::cout << b <<std::endl;  //b的内容
std::cout << &(a[0]) <<std::endl; // a[0]的地址

//由此可见,b指向a中的第一个元素

4. 数组其他操作

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

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

相关文章

数据库锁等待排查方法、命令行安装数据库及授权文件更新

欢迎关注“数据库运维之道”公众号&#xff0c;一起学习数据库技术! 本期将为大家分享“数据库锁等待排查方法、命令行安装数据库及授权文件更新”的运维技能。 关键词&#xff1a;锁等待、V$LOCK、V$TRXWAIT、死锁、锁超时、命令行部署达梦、授权文件更新 当用户反馈执行SQL语…

“开关是灯的日出日落,日出日落是灯的开关”

C语言刷题 day01 本篇是C语言刷题大杂烩&#xff0c;收集了笔者遇到的认为有价值的题目&#xff0c;本篇会持续更新~~ day01 至少是其他数字两倍的最大数 题目原文&#xff1a; 题意解析&#xff1a; 请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 …

Spring Cloud+Uniapp 智慧工地云平台源码 智慧工地云平台AI视频分析应用

目录 AI应用与环境治理 设备管理与危大工程 塔吊安全监管 智慧工地APP端 智慧工地硬件设备 智慧工地主要功能模块 智慧工地可以通过以下几个方面为建筑行业赋能&#xff1a; 1.提高工程效率 2.提高工程安全性 3.提高工程质量 4.提高工程管理效率 绿色施工 质量管理…

C++之类和对象二

目录 1.类的6个默认成员函数 2. 构造函数 3.析构函数 1.类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。空类中什么都没有吗&#xff1f;并不是的&#xff0c;任何一个类在我们不写的情 况下&#xff0c;都会自动生成下面6个默认成员函数。 clas…

国民经济行业导入数据库码表

目录 1、先去下载word文档图片如下 2、粘贴到excel中形成insert 语句 3、创建临时表存excel中数据 4、创建码表保存信息 5、编写存储过程放入表中 5.1存储第四级码值及父机构 5.2存储第三级码值及父机构 5.3存储第二级码值及父机构 5.4存储第一级码值 6、导入成功查看…

1.微服务介绍

完整的微服务架构图 注册中心 配置中心 服务集群 服务网关 分布式缓存 分布式搜索 数据库集群 消息队列 分布式日志服务 系统监控链路追踪 Jenkins docker k8s 技术栈 微服务治理&#xff1a; 注册发现、远程调用、负载均衡、配置管理、网关路由、系统保护、流量…

【学习】测试新项目该如何高效的展开测试?需要做哪些规划?

当我们收到测试项目时&#xff0c;如何高效地展开测试是我们作为测试人员所要面临的一大挑战。测试是软件开发过程中不可或缺的一环&#xff0c;它确保了产品的质量&#xff0c;降低了出现问题的风险&#xff0c;提高了用户的满意度。因此&#xff0c;我们需要制定合理的测试计…

前端三剑客 HTML+CSS+JavaScript ① 基础入门

光永远会照亮你 —— 24.4.18 一、C/S架构和B/S架构 C:Client&#xff08;客户端&#xff09; B:Browser&#xff08;浏览器&#xff09; S:Server&#xff08;服务器&#xff09; C/S 架构&#xff1a; B/S 架构&#xff1a; 大型专业应用、安全性要求较高的应用&#xff0c;还…

2024华中杯C题完整论文讲解(含完整python代码及所有曲率插值和坐标数据表格)

大家好呀&#xff0c;从发布赛题一直到现在&#xff0c;总算完成了2024华中杯C题光纤平面曲线重构完整的成品论文。 本论文可以保证原创&#xff0c;保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 共38页&#xff0c;一些修改…

2024年国内五大企业邮箱,哪个最靠谱?

电子邮件是企业办公的重要手段&#xff0c;目前我国五大企业的邮箱都有Zoho Mail公司邮箱、腾讯企业邮箱、阿里企业邮箱、网易企业邮箱、263公司邮箱。可是哪个电子邮件最可靠呢&#xff1f;可靠的企业邮箱必须要安全性高、稳定性高&#xff0c;能够保护企业的隐私不被泄露&…

【毕业设计】基于JAVA的两个通用安全模块的设计与实现(源代码+论文)

目录 1.说明 2.系统设计与实现 2.1总体结构图 2.2与数据库建立连接 2.3与数据库建立连接 2.4数字证书创建 2.5关键代码说明 1.说明 详细介绍基于口令的身份认证与文件安全传输两个通用安全模块的设计原理和实现过程&#xff0c;分析了当前口令保存的安全性&#xff0c;提出了…

噪声系数测试之增益法

提到增益法测试噪声系数,大家并不陌生,这是一种简洁的测试方法,精度不如Y因子法,但是在某些测试场合,比如只有频谱仪而没有噪声头时,且待测件具有非常高的增益时,就可以使用增益法测试噪声系数。 增益法测试噪声系数的连接示意图如图1所示,其思路为:DUT输入端端接50 …

2024的新宠儿——Mamba(3):Mamba的三大创新

mamba(其对应论文为:https://arxiv.org/abs/2312.00752,这是其对应的GitHub代码地址:GitCode - 开发者的代码家园),在语言、音频、DNA序列模态上都实现SOTA,在最受关注的语言任务上,Mamba-3B超越同等规模的Transformer,与两倍大的Transformer匹敌,并且相关代码、预训练模…

PR CC 2024安装教程(附免费安装包资源)

鼠标右击软件压缩包&#xff0c;选择“解压到当前文件夹”。 打开解压后的文件夹&#xff0c;鼠标右击“Set-up”选择“以管理员身份运行”。 点击文件夹图标。” 点击“更改位置”。 更改完位置&#xff0c;点击“继续”。 软件正在安装&#xff0c;请耐心等待&#xff0c;谢谢…

3D打印随形水路:模具提质降本增效的利器

在科技飞速发展的时代&#xff0c;3D打印技术以其独特的优势&#xff0c;正在逐步改写传统制造业。其中&#xff0c;3D打印随形水路技术的出现&#xff0c;无疑是科技与制造领域的一次革命性结合。那么&#xff0c;随形水路的魅力究竟体现在何处呢&#xff1f; 随形水路&#x…

乡政府管理系统|基于Springboot的乡政府管理系统设计与实现(源码+数据库+文档)

乡政府管理系统目录 目录 基于Springboot的乡政府管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户信息管理 2、活动信息管理 3、新闻类型管理 4、新闻动态管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推…

浅浅了解一下 LibTorch

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ LibTorch 是 PyTorch 提供的一个二进制发行版&#xff0c;包含了所有必要的头文件、库和 CMake 配置文件&#xff0c;便于开发者依赖 PyTorch 开发应用。用户可以从 PyTorch 官网下载包含最新 LibTorch…

Java全套智慧校园系统源码springboot+elmentui +Quartz可视化校园管理平台系统源码 建设智慧校园的5大关键技术

Java全套智慧校园系统源码springbootelmentui Quartz可视化校园管理平台系统源码 建设智慧校园的5大关键技术 智慧校园指的是以物联网为基础的智慧化的校园工作、学习和生活一体化环境&#xff0c;这个一体化环境以各种应用服务系统为载体&#xff0c;将教学、科研、管理和校园…

nodejs工具模块学习

util 是一个Node.js 核心模块&#xff0c;提供常用函数的集合&#xff1b; util.inspect(object,[showHidden],[depth],[colors]) 是一个将任意对象转换 为字符串的方法&#xff0c;通常用于调试和错误输出&#xff1b; 如果只有一个参数 object&#xff0c;是要转换的对象&…

【星瑞格】SinoDB国产数据库安装初体验及学习指南

今天和大家一起来看看一款来自福建的国产数据库——SinoDB。本人很早就听说过这款数据库&#xff0c;而且星瑞格公司就在同一栋办公楼。虽然以前就已经对这颗国产数据库有一定的了解&#xff0c;并没有真正的去使用一把。随着数据库国产化改造工作的推进&#xff0c;身边的客户…