/blog/images/avatar.webp

Hello World

C++23 新特性详细总结

C++23 新特性详细总结

C++23 是 ISO C++ 标准在 C++20 之后的正式版本,核心定位是对 C++20 特性的补全与优化,同时引入大量提升开发效率、代码安全性、运行时性能的能力,整体分为核心语言特性标准库特性两大模块,同时包含部分特性的移除与废弃。

C++20 新特性详细总结

C++20 新特性详细总结

C++20(ISO/IEC 14882:2020)是继C++11之后最具革命性的C++标准版本,于2020年12月正式发布。它通过四大核心支柱特性彻底革新了C++的编程范式,同时引入了数十项语言与标准库增强,大幅提升了代码的类型安全、编译效率、表达力、可维护性与性能,解决了传统C++长期存在的诸多历史痛点。

C++17 新特性详细总结

C++17 新特性完整详细总结

C++17(ISO/IEC 14882:2017)是继C++11之后的又一重大标准版本,于2017年12月正式发布。它延续了C++“零开销抽象”的核心哲学,在语法层面大幅简化编码复杂度,深化编译期计算能力,完善类型安全;在标准库层面补齐了并行计算、文件系统、类型安全容器等核心能力,让C++更易用、更高效、更安全。

C++14 新特性详细总结

C++14 新特性详细总结

C++14(ISO/IEC 14882:2014)是C++11标准的增量更新版本,核心定位是补全C++11的设计缺陷、简化语法、增强泛型编程能力与编译期计算能力,无颠覆性的语法革新,整体让现代C++的开发体验更流畅、安全、简洁。整体分为核心语言新特性标准库新特性两大模块,以下是完整详细总结。

Bash 调试技巧

Bash 调试技巧

bash 脚本是一种常用的脚本。当 bash 脚本执行出现错误的时候,我们可以通过调试的方式来定位问题所在。

Bash 调试常用选项

选项 说明
-v 打印执行命令
-x 类似 -v,并扩展了命令
-e 发生错误终止执行
-n 只检查语法,不执行脚本
-o pipefail 返回管道的错误状态

跟踪脚本的执行

输出调试信息

正常情况下,通过 bash test.sh./test.sh 执行脚本,利用 echo 或者 printf 命令可以输出一些信息,但是不能输出命令的具体执行情况。

Shell 配置文件的加载

Shell 启动方式

启动方式

Shell 的启动方式有以下四种:

  • 交互式登录
  • 非交互式登录
  • 交互式非登录
  • 非交互式非登录

其中交互式是指需要使用者手动输入的方式,而非交互式指的是脚本方式运行,不需要使用者手动输入。登录指的是使用者需要输入用户名和密码的方式,需要特定用户才能执行,而非登录不需要输入用户名和密码,任何用户都能执行。

Docker 使用 buildx 构建多平台镜像

Docker

apt-get install git

git 配置文件

git 配置文件有三个:

  1. /etc/gitconfig 是系统级配置文件,使用 git config --system 命令进行修改。
  2. ~/.gitconfig~/.config/git/config 是用户级配置文件,使用 git config --global 命令进行修改。
  3. local_dir/.git/config 是仓库级配置文件,使用 git config --local 命令进行修改。

设置用户信息

$ git config --global user.name "username"
$ git config --global user.email username@example.com

设置 git 默认编辑器

git config --global core.editor emacs

Astyle 配置使用

Astyle 工具下载


Astyle 参数详解

括号类型

default brace style

默认采用大括号样式,开口大括号不变,闭合大括号将与上一行断开。

–style=allman / –style=bsd / –style=break / -A1

int Foo(bool isBar)
{
    if (isBar)
    {
        bar();
        return 1;
    }
    else
        return 0;
}

–style=java / –style=attach / -A2

int Foo(bool isBar) {
    if (isBar) {
        bar();
        return 1;
    } else
        return 0;
}

–style=kr / –style=k&r / –style=k/r / -A3

int Foo(bool isBar)
{
    if (isBar) {
        bar();
        return 1;
    } else
        return 0;
}

–style=stroustrup / -A4

int Foo(bool isBar)
{
    if (isBar) {
        bar();
        return 1;
    }
    else
        return 0;
}

在 Keil 中的使用


C++11 标准容器使用

容器的定义

在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。


容器的分类

  1. 顺序容器

顺序容器是一种各元素之间有顺序关系的线性表,是一种线性结构的有序集合。这种顺序不依赖于元素的值,而是与元素加入容器的顺序相对应。顺序容器提供控制元素存储和访问顺序的能力。

力扣142. 环形链表

力扣142. 环形链表 II

给定一个链表的头节点 head,返回链表开始入环的第一个节点。如果链表无环,则返回 null

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos-1,则在该链表中没有环。

酒的分类

酒的分类 🍶

白酒按香型分类有十二种。


浓香型

浓香型白酒的执行标准:GB/T 10781-2006。

浓香型白酒:浓香型白酒以四川泸州老窖、五粮液位典型代表,也称为沪香型酒。

浓香型白酒的生产工艺采用泥土老窖为发酵窖,以高粱为主要原料。

日常购物选择

什么是执行标准号

产品执行标准是指反映质量特性的全方位产品标准,包括国家标准、行业标准、地方标准和企业标准。

执行标准号构成

标准代号 标准顺序号 - 标准发布年号

其中,标准代号有国家标准 (GB)、行业标准、地方标准 (DB)、企业标准 (Q)、推荐 (T)。

adb 设备无法识别

设备没有权限

执行 adb devices 命令输出

List of devices attached
3ed62e70        no permissions

查看 USB 设备

执行 lsusb 命令输出

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 094: ID 17ef:6050 Lenovo 
Bus 001 Device 124: ID 05c6:901d Qualcomm, Inc. -> 新增 usb 设备
Bus 001 Device 002: ID 060b:7a03 Solid Year 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

配置 USB 设备权限

修改 /etc/udev/rules.d/android.rules 文件内容

Android 安装 APK

adb 命令安装

  • 查看当前设备已安装包名
adb shell pm list packages
  • 安装 APK
adb install -r app-debug.apk
  • 卸载 APK
adb uninstall com.test.demo

pm 命令安装

先用 adb 命令将安装包推到机器中