C++和标准库速成(一)——HelloWorld和名称空间
目录
- 1. 引言
- 1. 简单小程序"Hello World"
- 1.1 模块导入
- 1.2 预处理指令
- 1.2.1 简介
- 1.2.2 常用的预处理指令
- 1.3 main()函数
- 1.4 输入输出流
- 1.4.1 输出流
- 1.4.2 转义字符
- 1.4.3 输入流
- 2. 名称空间
- 2.1 定义名称空间
- 2.2 using指令
- 2.3 嵌套名称空间
- 2.4 名称空间别名
- 参考
1. 引言
C++20的标准库模块目前还没有正式得到编译器的支持,而MSVC中已经存在了对标准库模块的实验性支持。需要安装适用于v143生成工具的C++模块,并且将普通控制台应用项目属性C/C++下的所有选项中的启用实验性的C++标准库模块改为是。
1. 简单小程序"Hello World"
import std.core;int main() {std::cout << "Hello, World!" << std::endl;return 0;
}
1.1 模块导入
C++20中最重要的新特性之一就是对模块的支持,用来替代之前的头文件机制。如果你想要使用某个模块中的功能,则需要导入这个模块,可以通过一条import声明做到。如import std.core;
如果你的编译器还不支持模块,只需要简单地将import声明替换为#include预处理指令。
1.2 预处理指令
1.2.1 简介
如果你的编译器还不支持C++20的模块,需要编写如下的预处理指令:#include <iostream>
。
简单来说,生成一个C++程序共有3个步骤。首先,代码经过预处理器,预处理器会识别代码中的元信息。其次,代码被编译或转换为计算机可识别的目标文件。最后,独立的目标文件被连接在一起生成一个应用程序。
预处理指令以#字符开始,前面实例中的#include <iostream>
就是一条预处理指令。在此例中,include指令告诉预处理器:提取<iostream>头文件中的所有内容并提供给当前文件。
头文件最常见的用途是声明在其他地方定义的函数,函数声明会通知编译器如何调用这个函数,并声明函数中参数的个数和类型,以及函数的返回类型;函数定义包含这个函数的实际代码。在C++20引入模块之前,声明通常放在扩展名为.h的文件中,称为头文件,其定义通常包含在扩展名为.cpp的文件中,称为源文件。有了模块,我们不再需要将声明与定义分离,但是之前的写法仍然可以使用。
注意:
1. 在C中,标准库头文件的名称通常以.h结尾,不使用名称空间。
2. 在C++中,标准库头文件的名称省略了.h后缀,所有文件都在std名称空间和std的子名称空间中定义。
3. C中的标准库头文件在C++中依然存在,但使用以下两个版本:
3.1 不使用.h后缀,改成前缀c,这是推荐使用的版本,这些头文件将内容放在std名称空间中。
3.2 使用.h后缀,这是旧版本,这些版本不适用名称空间。
1.2.2 常用的预处理指令
预处理指令 | 功能 | 常见用法 |
---|---|---|
#include [file] | 将指定的文件插入代码中指令所在的位置 | 几乎总是用来包含头文件,使代码可使用在其他位置定义的功能 |
#define [id] [value] | 每个指定的标识符都被替换成指定的值 | 在C中,常用来定义常数值或宏。C++提供了常数和大多数宏类型的更好机制。在C++使用宏有风险。 |
#ifdef [id] #endif #ifndef [id] #endif | ifdef(if defined)块和ifndef(if not defined)块中的代码被有条件地包含或舍弃,这取决于是否使用#define定义了特定的标识符 | 经常用来防止循环包含。每个头文件都以#ifndef开头,以保证某个标识符还未被定义,然后用一条#define指令定义该标识符。头文件以#endif结束,这样这个头文件不会被多次包含 |
#pragma [xyz] | xyz因编译器而异。如果在预处理期间执行到这一指令,通常会显示一条警告或错误信息 | 参见该表之后的举例 |
下面是使用预处理指令避免重复包含的一个实例:
#ifndef MYHEADER_H
#define MYHEADER_H
// ... the contents of this header file
#endif
如果编译器支持#pragma once
指令,可采用以下方法重写上面的代码。
#pragma once
// ... the contents of this header file
1.3 main()函数
main()函数是程序的入口。main函数返回一个int值以指示程序的最终执行状态。在main()函数中可以忽略显式的return语句,这种情况下会自动返回0.main()函数要么没有参数,要么具有两个参数,如下所示。
int main(int argc, char* argv[])
argc给出了传递给程序的实参数目,argv包含了这些实参。注意argv[0]可能是程序的名称,也可能是空字符串,所以不应使用它。应当使用特定于平台的功能检索程序名。最重要的是,实际参数从索引1开始。
1.4 输入输出流
1.4.1 输出流
基本的输入输出非常简单,可将输出流想象为针对数据的洗衣滑槽,放入其中的任何内容都可以被正确地输出。std::cout就是对应于用户控制台或标准输出的滑槽,此外还有其他滑槽,包括用于输出错误信息的std::cerr。<<运算符将数据放入滑槽,在前面的示例中,引号中的文本字符串被送到标准输出。输出流可在一行代码中连续输出多个不同类型的数据,如下面的代码所示。
std::cout << "There are " << 219 << " ways I love you." << std::endl;
从C++20开始,推荐的写法是使用std::format(),定义在中,用来格式化字符串 。如std::cout << std::format("There are {} ways I love you.", 219) << std::endl;
。std::endl代表序列的结尾。当输出流遇到std::endl时,就会将已送入滑槽的所有内容输出并转移到下一行。
1.4.2 转义字符
表明一行结尾的另一种方法是使用\n字符,\n字符是一个转义字符,这是一个换行符。转义字符可以在任何被引用的文本字符串中使用。
转义字符 | 含义 |
---|---|
\n | 换行:将光标移到下一行的开头 |
\r | 回车:将光标移到本行的开头 |
\t | 制表符 |
\ | 反斜杠字符 |
" | 引号 |
警告:请记住endl会在流中插入新的一行,并且将当前缓冲区中的所有内容刷出滑槽。不建议过度地使用endl,例如在循环中使用,这会影响程序的性能。另一方面,在流中插入\n也会插入新的一行,但不会自动刷新缓冲区。
1.4.3 输入流
流还可用于接收用户的输入,最简单的方式是在输入流中使用>>运算符。std::cin输入流接受用户的键盘输入。示例如下:
int value;
std::cin >> value:
需要慎重对待用户输入,因为永远都不会知道用户会输入什么类型的数据。
如果你拥有C的背景知识但初次接触C++,你可能想了解过去使用的、可靠的printf()和scanf()现在究竟是什么情况。尽管C++中仍然可以使用这些函数,但强烈建议你改用format()和流库,主要原因是printf()和scanf()未提供类型安全。
2. 名称空间
2.1 定义名称空间
名称空间用来处理不同代码段之间的名称冲突问题。例如,你某天编写了一段代码,其中有一个名为foo()的函数。某天,你决定用第三库,其中也有一个foo()函数。编译器无法判断你的代码要使用哪个版本的foo()函数。库函数的名称无法改变,而改变自己的函数名称又会感觉到痛苦。
在此类情况下使用名称空间,从而指定定义名称的环境。为将某段代码加入名称空间,可用namespace块将其包含。示例如下:
namespace mycode {void foo() {std::cout << "foo() called in the mycode namespace" << std::endl;}
}
将你编写的foo()版本放到名称空间mycode后,这个函数就与第三方库提供的foo()函数区分开来。为调用启用了名称空间的foo()版本,需要使用::在函数名称之前给出名称空间,::称为作用域解析运算符。
mycode::foo();
2.2 using指令
mycode名称空间中的任何代码都可调用该名称空间内的代码,而不需要显式说明该名称空间。隐式的名称空间可使代码清晰并易于阅读。可使用using指令避免预先指明名称空间。这个指令通知编译器,后面的代码将使用指定名称空间中的名称。示例如下:
using namespace mycode;int main() {foo(); // Implies mycode::foo();
}
一个源文件中可包含多条using指令,这种方法虽然便捷,但注意不要过度使用。极端情况下,如果你使用了已知的所有名称空间,实际上就是完全取消了名称空间。如果使用了两个同名的名称空间,将再次出现名称冲突问题。另外,应该知道代码在哪个名称空间内运行,这样就不会无意中调用错误版本的函数。
可以使用using指令引用名称空间内的特定项。例如,想要只使用std名称空间中的cout,可以使用如下的using声明:
using std::cout;
后面的代码可以使用cout而不需要预先指明这个名称空间,但仍然需要显式说明std名称空间中的其他项。
警告:切勿在全局作用域的头文件中使用using指令或using声明,否则添加你的头文件的每个人都必须使用它。将其放在较小的作用域,例如名称空间或类作用域中,是可以的,甚至是在文件头部。将using指令或using声明放在模块接口文件中也是不错的选择,只要你不将它导出。
2.3 嵌套名称空间
嵌套的名称空间,即将一个名称空间放在另一个名称空间中。各个名称空间之间由双冒号隔开,示例如下:
namespace MyLibraries::Networking::FTP {/*...*/
}
这种紧凑写法是在C++17之后才得到支持的,在C++17之前,必须按如下方式使用嵌套的名称空间。
namespace MyLibraries {namespace Networking {namespace FTP {/*...*/}}
}
2.4 名称空间别名
可使用名称空间别名,为另一个名称空间指定一个更简短的新名称。示例如下
namespace MyFTP = MyLibraries::Networking::FTP;
参考
[比] 马克·格雷戈勒著 程序喵大人 惠惠 墨梵 译 C++20高级编程(第五版)
相关文章:
C++和标准库速成(一)——HelloWorld和名称空间
目录 1. 引言1. 简单小程序"Hello World"1.1 模块导入1.2 预处理指令1.2.1 简介1.2.2 常用的预处理指令 1.3 main()函数1.4 输入输出流1.4.1 输出流1.4.2 转义字符1.4.3 输入流 2. 名称空间2.1 定义名称空间2.2 using指令2.3 嵌套名称空间2.4 名称空间别名 参考 1. 引…...
OpenHarmony 5.0 MP4封装的H265视频播放失败的解决方案
问题现象 OpenHarmony 5.0版本使用AVPlayer播放MP4封装格式的H.265(HEVC)编码格式的视频时解码失败导致播放失败 问题原因 OpenHarmony 5.0版本AVPlayer播放器使用histreamer引擎,因为 libav_codec_hevc_parser.z.so 动态库未开源导致从MP4封装中分离的HVCC格式的…...
索引-最左匹配
在数据库索引中,最左匹配原则确实在遇到某些范围查询时会停止向右匹配,但对于 >、<、BETWEEN 和前缀匹配的 LIKE,索引匹配可以继续使用后续列。以下是详细分析: 1. 最左匹配原则的核心规则 最左匹配原则要求查询条件从复合…...
感觉自己邮电部诗人
中心扩散 第二次做这道题,求回文子串最大长度的时候,计算写成了j-i1,看了15分钟才看发现哪里出了问题,感觉自己邮电部诗人,望周知。...
Java代理方式的详细介绍,包括代码示例、注释说明及其差异对比表格
Java代理方式 Java中的代理模式是一种结构型设计模式,用于在不修改原始类的情况下增强其功能。Java支持两种代理方式: 静态代理动态代理 JDK动态代理CGLIB动态代理 1. 静态代理 静态代理通过手动编写代理类实现,代理类和目标类实现相同的…...
接口对外安全交互新姿势
文章目录 1.前言2.姿势2.1 AES2.2 body参数签名及验签2.3使用sm2 加ip白名单 3.总结 1.前言 由于这久做了一个乐企数电开票的项目,已经上线了,真的是一言难尽,再回首已经是轻舟已过万重山,接口通过外网暴露给业务方使用࿰…...
Docker基础篇——Ubuntu下Docker安装
大家好我是木木,在当今快速发展的云计算与云原生时代,容器化技术蓬勃兴起,Docker 作为实现容器化的主流工具之一,为开发者和运维人员带来了极大的便捷 。下面我们一起进行Docker安装。 Docker的官方Ubuntu安装文档,如…...
《深度解析DeepSeek-M8:量子经典融合,重塑计算能效格局》
在科技飞速发展的今天,量子计算与经典算法的融合成为了前沿领域的焦点。DeepSeek-M8的“量子神经网络混合架构”,宛如一把钥匙,开启了经典算法与量子计算协同推理的全新大门,为诸多复杂问题的解决提供了前所未有的思路。 量子计算…...
关于C/C++语言的初学者在哪刷题,怎么刷题
引言: 这篇博客主要是针对初学者关于怎么在网上刷题,以及在哪里刷题。 1.介绍平台(在哪刷题): 1.牛客牛客网https://www.nowcoder.com/ :有许多面试题,也有许多供学习者练习的题 2.洛谷洛谷 …...
【redis】string类型相关操作:SET、GET、MSET、MGET、SETNX、SETEX、PSETEX
文章目录 二进制存储编码转换SET 和 GETSETGET MSET 和 MGETSETNX、SETEX 和 PSETEX Redis 所有的 key 都是字符串,value 的类型是存在差异的 二进制存储 Redis 中的字符串,直接就是按照二进制数据的方式存储的 不仅仅可以存储文本数据,还可…...
el-table中嵌套了el-form-item 导致的内容不垂直居中展示的问题
el-table中嵌套了el-form-item 导致的内容不垂直居中展示的问题 这个问题原先我一直没有找到问题的关键点,后来看了一篇文章得知由于el-form-item的margin导致的 下面的css类告诉我们。正常的表单校验margin就是20px,在el-table中的只有是校验失败的才会…...
LVCMOS(Low Voltage Complementary Metal-Oxide-Semiconductor)电平详解
一、LVCMOS电平的定义与核心特性 LVCMOS(低压互补金属氧化物半导体)是 CMOS技术的低电压版本,专为现代低功耗、高集成度芯片设计,支持 1.2V、1.8V、2.5V、3.3V 等多种电压等级。其通过优化晶体管结构和供电电压,显著降…...
计算机操作系统(一) 什么是操作系统
计算机操作系统(一) 什么是操作系统 前言一、什么是操作系统二、操作系统的作用三、推动操作系统发展的主要动力总结(核心概念速记): 前言 当你打开电脑、点击应用、播放音乐时,是谁在背后默默协调这一切&…...
《用 python、MySQL 和 Chart.js 打造炫酷数据看板》实战案例笔记
今天,我们要构建一个数据看板系统。在这个过程中,我们会利用 MySQL 来存储数据,使用 Python 搭建后端 API,还会借助 Chart.js 在前端呈现各式各样的图表。 整个流程涵盖多个环节,首先要进行数据库表的设计,…...
Android ANR 监控方法与事件分发耗时优化实战
一、ANR 监控方法 (一)系统日志分析 系统日志始终是查找 ANR 根源的重要依据。利用日志分析,不仅可以锁定 ANR 发生的精确时刻,还能追踪到主线程、关键函数调用的阻塞细节。 日志关键词检索:利用 ADB 命令ÿ…...
【蓝桥杯单片机】第十一届省赛
一、真题 二、创建工程 1.在C盘以外的盘新建文件夹,并在文件夹里面创建两个文件夹Driver 和Project 2.打开keil软件,在新建工程并选择刚刚建好的project文件夹,以准考证号命名 3.选择对应的芯片型号 4.选择否,即不创建启动文件 …...
【ES6】模块化
概述 模块功能主要有两个命令,export和import。 一个js文件就是一个模块。 参考视频 【一小时速通JavaScript模块化,涵盖CommonJS与ES6模块化-哔哩哔哩】 https://b23.tv/gZ1uK7V 导出成员 在正常变量、函数前加export关键字。 导入模块 在另一个…...
C++学习——顺序表(六)
文章目录 前言一、找到数组的中间位置二、有序数组中的单一元素三、杨辉三角(Ⅱ)四、超过阈值的最小操作数Ⅰ五、找出峰值六、统计已测试设备七、统计和小于目标的下标对数目1.单向遍历法2.双指针法(时间复杂度小) 八、计算K置位下…...
python迭代器生成器
迭代器生成器区别 通俗版概念 迭代器(Iterator) 像“快递员送快递”: 你有一个包裹清单(比如Excel里的测试用例),快递员(迭代器)会按顺序一个一个送(遍历&#x…...
Hive SQL 精进系列:字符串拼接的三种常用方式
Hive字符串拼接:三种常用方式深度剖析 目录 Hive字符串拼接:三种常用方式深度剖析引言一、简洁直观的||操作符1. 基础语法规则2. 丰富多样的示例展示3. 优势与局限分析 二、规范通用的CONCAT函数1. 全面的语法解析2. 生动的示例说明3. 优势与局限剖析 三…...
MATLAB—从入门到精通的第二天
在第一天的学习中,我们掌握了 MATLAB 的安装配置、基础语法、变量管理和运算符的使用。本文将深入讲解 控制结构(嵌套 if、switch)、循环类型 和 向量操作,帮助读者进一步掌握 MATLAB 的核心编程技能。 1. 条件语句进阶 1.1 嵌套…...
韦伯望远镜的拉格朗日点计算推导过程,包含MATLAB和python运动轨迹仿真代码
研究过程 起源与提出:1687 年牛顿提出 “三体问题”,旨在研究三个可视为质点的天体在相互之间万有引力作用下的运动规律,但因运动方程过于复杂,难以得到完全解。欧拉的贡献1:1767 年,瑞士数学家莱昂哈德・…...
【 现代后端架构演进:微服务设计与云原生】
现代后端架构演进:微服务设计与云原生 一、架构演进历程 1. 单体架构到分布式系统 单体架构瓶颈 典型问题:代码耦合(代码行超百万级)、扩展困难(垂直扩容成本 > 1 0 5 >10^5 >105美元/节点)、技术…...
[JAVASE] 注解
一. 注解是什么? 注解是一种为程序元素提供元数据的方法.注解就是为程序做特殊标记的. 二. java内置的注解 分别是: 作用在代码的注解是: Override - 检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。 De…...
热成像仪真不错
我挂在外面的网路设备箱 室内的机柜 室外的猫 所用型号为优利德UTi160S,显示模式为(可见光与热成像)融合模式。...
Vue-Virtual-Scroller虚拟滚动
前端优化不可不避的一谈之虚拟滚动:众所周知,滚动是直挺挺的往dom树加东西,如果滚太多滚到万级,渲染过多就会卡顿,而vue-virtual-scroll的灵活懒渲染就能解决这个问题 1,下载与配置 npm install --save v…...
Matlab:矩阵运算篇——矩阵
目录 1.定义 实例——创建矩阵 实例——创建复数矩阵 2.矩阵的生成 实例——M文件矩阵 2.利用文本创建 实例——创建生活用品矩阵 3.创建特殊矩阵 实例——生成特殊矩阵 4.矩阵元素的运算 1.矩阵元素的修改 实例——新矩阵的生成 2.矩阵的变维 实例——矩阵维度修…...
[Java]使用java进行JDBC编程
首先要从中央仓库下载api(类似驱动程序),为了链接java和mysql 下载jar包,需要注意的是jar包的版本要和mysql保持一致 下面是新建文件夹lib,把jar包放进去,并添加为库 sql固定的情况下运行 import com.mysql.cj.jdbc.MysqlDataSo…...
HippoRAG 2 原理精读
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 整体流程离线索引阶段在线检索和问答阶段 总结 整体流程 从上图可以看出,整个流程分为两个阶段 1、离线索引阶段 2、在线检索和问答阶段 离线索引阶段…...
HTTPS协议原理:在Linux世界里的加密冒险
大家好,欢迎来到这次奇妙的HTTPS协议探险之旅!今天,我们将一起潜入Linux的深处,揭开HTTPS协议那神秘而迷人的面纱。别担心,即使你是技术小白,也能在这场冒险中找到乐趣和收获。想象一下,你是一位…...
Spring Boot启动流程及源码实现深度解析
Spring Boot启动流程及源码实现深度解析 一、启动流程概述 Spring Boot的启动流程围绕SpringApplication类展开,核心流程可分为以下几个阶段: 初始化阶段:推断应用类型,加载ApplicationContextInitializer和ApplicationListene…...
使用pip在Windows机器上安装Open Webui,配合Ollama调用本地大模型
之前的文章分享过在 linux 服务器上安装,并使用Open-webui 来实现从页面上访问本地大模型的访问。也写了文章分享了我在家里 Windows Server 台式机上安装 Ollama 部署本地大模型,并分别使用 Chatbox 和 CherryStudio 来访问本地的大模型。今天我来分享一…...
go map的声明和使用
1.简介 map是key-value数据结构,又称为字段或者关联数据。类似其他语言的集合,map在go中是引用类型,必须初始化才能使用。 2.语法 map[keytype]valuetype keytype:表示间的类型。可以是基本数据类型,还可以是指针、channl等。…...
word毕业论文“et al.”替换为“等”——宏
Sub 中文参考文献改等()中文参考文献改等 宏Selection.Find.ClearFormattingSelection.Find.Replacement.ClearFormattingWith Selection.Find.Text "([一-龥], )et al.".Replacement.Text "\1等.".Forward True.Wrap wdFindContinue.Format False.Ma…...
23. 观察者模式
原文地址: 观察者模式 更多内容请关注:智想天开 1. 观察者模式简介 观察者模式(Observer Pattern)是一种行为型设计模式,用于建立对象之间的一种一对多的依赖关系。当一个对象的状态发生变化时,所有依赖于它的对象都…...
go的”ambiguous import in multiple modules”
执行“go mod tidy”报如下错误: go mod tidy -compat1.17 go: finding module for package github.com/gomooon/goredis go: found github.com/gomooon/goredis in github.com/gomooon/goredis v0.3.5 go: github.com/gomooon/core importsgithub.com/gomooon/gor…...
【鸿蒙开发】MongoDB入门
https://www.mongodb.com/try/download/community 下载MongoDB: var mongoose require("mongoose");// localhost 域名,代表本机 // 127.0.0.1 ip , 代码本机 mongoose.connect("mongodb://localhost:27017/jiaju").then(() > {console.l…...
【应用篇】MLU上deepseek/QwQ-32B+dify实现workflow应用
文章目录 前言一、平台环境选择二、创建容器应用三、启动服务1.下载deepseekR1-14B模型2.VLLM启动服务3.postman测试服务 四、workflow搭建1.搭建第一个工作流2.详细配置 五、效果演示 前言 本章主要讲解如何用paas平台,实现智能体应用 本章中大模型我们使用deeps…...
vue组件库el-menu导航菜单设置index,地址不会变更的问题
请先确认 1.路由已配置好 route-index.js如下, 2.view-ProHome.vue中已预留路由展示位 3.导航菜单复制组件库,并做修改 其中index与路由配置的地址一致 运行后发现点击菜单,url地址还是不变,查看组件库 Element - The worlds …...
防抖和节流
防抖(Debounce)和节流(Throttle)是前端开发中常用的两种性能优化技术,主要用于控制高频事件的触发频率,避免不必要的性能消耗。 1. 防抖(Debounce) 防抖的核心思想:在事…...
Deepseek可以通过多种方式帮助CAD加速工作
自动化操作:通过Deepseek的AI能力,可以编写脚本来自动化重复性任务。例如,使用Python脚本调用Deepseek API,在CAD中实现自动化操作。 插件开发:结合Deepseek进行二次开发,可以创建自定义的CAD插件。例如&a…...
基于Spring Boot的宠物猫认养系统的设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
开源!速度100Kb/s的有线和无线双模ESP32S3芯片的DAP-Link调试器
开源!速度100Kb/s的有线和无线双模ESP32S3芯片的DAP-Link调试器 目录 开源!速度100Kb/s的有线和无线双模ESP32S3芯片的DAP-Link调试器本项目未经授权,禁止商用!本项目未经授权,禁止商用!本项目未经授权&…...
Vue3 模板引用:打破数据驱动的次元壁(附高阶玩法)
在数据驱动的Vue世界中,模板引用(Template Refs)是我们与真实DOM对话的秘密通道。本文将带你深入理解这个"逃生舱"的正确打开方式,并分享实战中的高阶技巧。 一、基础入门:建立DOM连接 1. 创建模板引用 &…...
第五天 Labview数据记录(5.5 SQL数据库读写)
5.5 SQL数据库读写 SQL 数据库读写操作是现代软件开发、数据分析和企业信息系统的核心功能。其意义不仅体现在技术层面,还涉及到业务流程优化、数据管理、决策支持等多个方面。以下是 SQL 数据库读写操作的重要意义:1. 数据存储与管理;2. 支…...

微信小程序项目引入图片问题:Error: module ‘assets/img/topImg.jpg.js‘ is not defined
问题与处理策略 问题描述 在微信小程序项目中,通过 require 引入图片文件,报如下错误 Error: module assets/img/topImg.jpg.js is not defined, require args is ../../assets/img/topImg.jpg# 翻译错误:未定义模块“assets/img/topImg.…...
02C#基本结构篇(D4_注释-访问修饰符-标识符-关键字-运算符-流程控制语句)
目录 一、注释 1. 单行注释 2. 多行注释 3. XML文档注释 4. 使用建议和最佳实践: 二、访问修饰符 1. public 2. private 3. protected 4. internal 5. protected internal 或 protected and internal 6. private protected 或 private and protected 7.…...
Python:正则表达式
正则表达式的基础和应用 一、正则表达式核心语法(四大基石) 1. 元字符(特殊符号) 定位符 ^:匹配字符串开始位置 $:匹配字符串结束位置 \b:匹配单词边界(如 \bword\b 匹配…...
ChatGPT4.5详细介绍和API调用详细教程
OpenAI在2月27日发布GPT-4.5的研究预览版——这是迄今为止OpenAI最强大、最出色的聊天模型。GPT-4.5在扩大预训练和微调规模方面迈出了重要的一步。通过扩大无监督学习的规模,GPT-4.5提升了识别内容中的模式、建立内容关联和生成对于内容的见解的能力,但…...
linux makefile tutorial
一个makefile的教程,几个小时就能看完,对makefile有个总体加细节的系统了解,非常不错: Learn Makefiles With the tastiest examples 中文翻译版: 起步 - Makefile 教程 (gavinliu6.github.io) gcc官网手册&#x…...