作者: wzwys9

  • c++的起源

    # C++的起源故事与简介
    ## 📜 起源故事
    1979年,在贝尔实验室,一位名叫**Bjarne Stroustrup**(比雅尼·斯特劳斯特鲁普)的丹麦计算机科学家遇到了一个问题:他需要为他的博士论文进行分布式系统的模拟,但现有的语言要么太慢(Simula),要么太底层(C语言)。
    于是,Stroustrup萌生了一个想法:**”为什么不把Simula的面向对象特性和C语言的高效性结合起来呢?”**
    最初,这个项目被称为”**C with Classes**”(带类的C),就像给C语言穿上了一件面向对象的外衣。1983年,这个语言正式改名为**C++**,其中的”++”源自C语言的自增运算符,寓意着”C语言的进化版”。
    ## 🎯 C++简介
    C++是一门:
    – **多范式编程语言**:支持面向过程、面向对象、泛型编程
    – **高性能语言**:接近硬件,效率媲美C语言
    – **应用广泛**:从操作系统、游戏引擎到嵌入式系统都有它的身影
    **核心特性:**
    – 类和对象(OOP)
    – 模板和泛型编程
    – 手动内存管理(指针)
    – 标准模板库(STL)
    – 运算符重载
    ## 💻 简单代码示例
    ### 1. Hello World – 经典开场
    “`cpp
    #include
    int main() {
    std::cout << "Hello, C++!" << std::endl; return 0; } ``` ### 2. 类和对象 - 面向对象的魅力 ```cpp #include
    #include
    class Person {
    private:
    std::string name;
    int age;
    public:
    // 构造函数
    Person(std::string n, int a) : name(n), age(a) {}

    // 成员函数
    void introduce() {
    std::cout << "我叫" << name << ",今年" << age << "岁" << std::endl; } }; int main() { Person person("小明", 25); person.introduce(); return 0; } ``` ### 3. 模板 - 泛型编程 ```cpp #include
    // 函数模板:可以处理任意类型
    template
    T getMax(T a, T b) {
    return (a > b) ? a : b;
    }
    int main() {
    std::cout << "整数最大值: " << getMax(10, 20) << std::endl; std::cout << "浮点数最大值: " << getMax(3.14, 2.71) << std::endl; return 0; } ``` ### 4. STL容器 - 标准库的力量 ```cpp #include
    #include
    #include
    int main() {
    std::vector numbers = {5, 2, 8, 1, 9};

    // 排序
    std::sort(numbers.begin(), numbers.end());

    // 遍历输出
    for (int num : numbers) {
    std::cout << num << " "; } std::cout << std::endl; return 0; } ``` ### 5. 智能指针 - 现代C++(C++11后) ```cpp #include
    #include
    class Resource {
    public:
    Resource() { std::cout << "资源已创建" << std::endl; } ~Resource() { std::cout << "资源已释放" << std::endl; } void use() { std::cout << "正在使用资源" << std::endl; } }; int main() { // 智能指针自动管理内存 std::shared_ptr ptr = std::make_shared();
    ptr->use();
    // 离开作用域时自动释放,无需手动delete
    return 0;
    }
    “`
    ## 🌟 有趣的小知识
    – C++标准每三年更新一次:C++11、C++14、C++17、C++20、C++23…
    – C++之父Bjarne Stroustrup说过:”**C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off.**”(C语言容易让你射到自己的脚;C++更难做到,但一旦出错,整条腿都会炸飞)
    – 许多知名软件都用C++编写:Chrome浏览器、MySQL数据库、Adobe产品、游戏引擎(虚幻4/5)等

    **从1979年到现在,C++已经走过了40多年的历程,它依然是最重要的系统级编程语言之一!** 🚀

  • 你好呀

    ![套餐截图](https://blog.wzwzh.com/wp-content/uploads/2025/11/Screenshot_2025-11-17-22-52-59-847_com.android.chrome-scaled.jpg){.alignnone}
    ![6666](https://delux.wzwzh.com/f/JMsv/ChatGPT%20Image%202025%E5%B9%B410%E6%9C%886%E6%97%A5%2016_14_29.png)

  • C++简介

    # C++ 编程语言简介

    ## 什么是 C++?

    C++ 是一种通用的编程语言,由 Bjarne Stroustrup 于 1979 年在贝尔实验室开发。它是 C 语言的扩展,增加了面向对象编程(OOP)特性,同时保持了 C 语言的高效性和灵活性。

    ## 主要特点

    ### 1. 多范式编程
    C++ 支持多种编程范式:
    – **面向对象编程**:类、继承、多态
    – **过程式编程**:函数、结构化代码
    – **泛型编程**:模板、STL 标准库
    – **函数式编程**:Lambda 表达式、函数对象

    ### 2. 高性能
    C++ 编译成机器码直接执行,运行效率接近硬件极限,广泛应用于:
    – 游戏引擎(Unreal Engine、Unity 底层)
    – 操作系统(Windows、Linux 内核部分)
    – 嵌入式系统
    – 高频交易系统

    ### 3. 底层控制能力
    程序员可以直接管理内存、操作指针,对硬件有精细的控制权。

    ## 基础语法示例

    ### Hello World
    “`cpp
    #include

    int main() {
    std::cout << "Hello, World!" << std::endl; return 0; } ``` ### 类与对象 ```cpp class Rectangle { private: int width, height; public: Rectangle(int w, int h) : width(w), height(h) {} int area() { return width * height; } }; int main() { Rectangle rect(10, 5); std::cout << "面积: " << rect.area() << std::endl; return 0; } ``` ### STL 容器使用 ```cpp #include
    #include

    int main() {
    std::vector nums = {5, 2, 8, 1, 9};

    // 排序
    std::sort(nums.begin(), nums.end());

    // 遍历
    for (int num : nums) {
    std::cout << num << " "; } return 0; } ``` ## C++ 的版本演进 | 版本 | 年份 | 主要特性 | |------|------|----------| | C++98 | 1998 | 首个标准化版本,STL 标准库 | | C++11 | 2011 | auto、Lambda、智能指针、移动语义 | | C++14 | 2014 | 泛型 Lambda、二进制字面量 | | C++17 | 2017 | 结构化绑定、std::optional | | C++20 | 2020 | Concepts、协程、模块 | | C++23 | 2023 | std::print、多维下标运算符 | ## 应用领域 1. **系统软件**:操作系统、驱动程序、编译器 2. **游戏开发**:3A 游戏、游戏引擎 3. **嵌入式开发**:IoT 设备、汽车电子 4. **科学计算**:数值模拟、机器学习框架底层 5. **金融系统**:高频交易、风险分析 ## 优缺点对比 ### 优点 - ⚡ 性能极佳,接近 C 语言 - 🔧 对硬件的精细控制 - 📚 丰富的标准库和第三方库 - 🔄 向后兼容 C 语言 ### 缺点 - 📖 学习曲线陡峭 - ⚠️ 手动内存管理容易出错 - 🐛 编译错误信息复杂 - ⏱️ 编译时间较长 ## 学习建议 对于初学者,建议按以下路径学习: 1. **基础语法**:变量、循环、函数 2. **指针与引用**:理解内存管理 3. **面向对象**:类、继承、多态 4. **STL 标准库**:容器、算法、迭代器 5. **现代 C++**:智能指针、Lambda、移动语义 ## 推荐资源 - 📕 《C++ Primer》- 经典入门书籍 - 🌐 [cppreference.com](https://cppreference.com) - 最全面的参考文档 - 💻 [LeetCode](https://leetcode.com) - 刷题练习 - 🎓 [learncpp.com](https://learncpp.com) - 免费在线教程 ## 总结 C++ 是一门功能强大但复杂的语言,虽然学习曲线较陡,但掌握后能够开发高性能的系统级应用。随着 C++11 之后的现代化改进,语言变得更加安全和易用。如果你从事游戏开发、嵌入式系统或高性能计算,C++ 仍然是不可或缺的工具。 --- *最后更新:2024 年*

  • ubuntu工具

    既然你喜欢这类终端工具,再推荐一波:

    bash <(curl -L https://raw.githubusercontent.com/wzwys9/my_abc/main/linuxtools.sh)更好的基础命令(替代品) bat(替代 cat) sudo apt install bat # Ubuntu 下命令是 batcat,可以设别名 alias cat='batcat'• 语法高亮、显示行号、支持 Git 变更标记 • 看代码、日志文件很舒服 eza(替代 ls) sudo apt install eza alias ls='eza' alias ll='eza -l --git' alias la='eza -la --git'• 彩色输出、显示 Git 状态、树形显示 fd(替代 find) sudo apt install fd-find # Ubuntu 下命令是 fdfind alias fd='fdfind'• fd test 比 find . -name "*test*" 简洁太多 • 默认忽略 .gitignore 里的文件,速度快 ripgrep / rg(替代 grep) sudo apt install ripgrep• rg "pattern" 搜代码超快 • 自动忽略 .git、二进制文件 • 做 C++ 开发搜代码必备 --- 开发效率 lazygit(Git TUI) sudo apt install lazygit• 终端里的 Git 图形界面 • 比敲命令快很多,提交、分支、冲突处理都很方便 tldr(替代 man) sudo apt install tldr• tldr tar 直接看常用例子,不用翻长长的 man delta(更好的 Git diff) # 安装后配置 .gitconfig [core] pager = delta [delta] line-numbers = true side-by-side = true• Git diff 语法高亮、并排对比 --- 系统监控 btop(替代 htop) sudo apt install btop• 颜值高、信息全,CPU/内存/网络/磁盘一目了然 ncdu(磁盘分析) sudo apt install ncdu• 交互式查看哪个目录占空间大 • 比 du -sh * 直观 --- 终端增强 tmux(终端复用) sudo apt install tmux• 分屏、多窗口、断开后会话不丢失 • SSH 到服务器必备 starship(美化提示符) curl -sS https://starship.rs/install.sh | sh echo 'eval "$(starship init bash)"' >> ~/.bashrc• 显示 Git 分支、状态、目录等信息
    • 颜值高,配置简单

    我的推荐优先级
    必装:
    1. ripgrep – 搜代码
    2. bat – 看文件
    3. fd – 找文件
    4. lazygit – Git 操作
    可选:
    5. tmux – 远程开发必备
    6. btop – 系统监控
    7. eza – 好看的 ls
    这些都是免费的,装上之后终端体验飞升。要不要我给你一个一键安装脚本?

    fzf 是个通用的模糊搜索/交互式选择工具,单独用或配合其他工具都行:

    fzf 单独用
    Ctrl + R – 搜索历史命令
    # 按 Ctrl+R,输入关键词模糊匹配
    # 比如输入 “git push” 会列出所有相关命令
    # 上下选择,回车执行
    安装命令
    sudo apt install fzfAlt + C – 搜索目录并跳转
    # 按 Alt+C,交互式选择当前目录下的子目录
    # 模糊输入过滤,选中后直接 cd 过去Ctrl + T – 搜索文件并插入路径
    # 比如你要 vim 一个文件但记不清路径
    # 输入 vim 然后按 Ctrl+T,模糊搜索选择文件—
    fzf + zoxide 配合
    # zi = zoxide interactive
    zi会列出你去过的所有目录,模糊搜索选择,比 z 关键词 更直观:
    > t80
    /home/xing/projects/t8025
    /home/xing/projects/t8025/src
    /home/xing/logs/t8025_debug—
    总结
    工具
    作用

    zoxide
    记住你去过的目录,z 关键词 直接跳

    fzf
    交互式模糊选择,让 zi 和 Ctrl+R 等更好用

    如果你觉得 z 关键词 已经够用,fzf 可以不装。但 Ctrl+R 搜历史命令真的很香,推荐试试。

    tmux 主要解决两个问题:
    1. SSH 断开后会话不丢失 – 跑长任务不怕断网
    2. 终端分屏/多窗口 – 一个终端里干多件事

    基本概念
    Session(会话)→ Window(窗口)→ Pane(面板)

    一个 Session 可以有多个 Window(类似浏览器标签页)
    一个 Window 可以分成多个 Pane(分屏)—
    最常用操作
    会话管理
    tmux # 新建会话
    tmux new -s work # 新建命名会话
    tmux ls # 列出所有会话
    tmux a # 重新连接上次会话
    tmux a -t work # 连接指定会话
    tmux kill-session -t work # 关闭会话在 tmux 内的快捷键(先按 Ctrl+B,松开后再按下一个键)
    操作
    快捷键

    分屏

    左右分屏
    Ctrl+B %

    上下分屏
    Ctrl+B ”

    切换面板
    Ctrl+B 方向键

    关闭当前面板
    Ctrl+B x

    窗口

    新建窗口
    Ctrl+B c

    下一个窗口
    Ctrl+B n

    上一个窗口
    Ctrl+B p

    选择窗口
    Ctrl+B 数字

    会话

    断开(不关闭)
    Ctrl+B d

    列出会话
    Ctrl+B s


    典型使用场景
    1. SSH 跑长任务
    ssh server
    tmux new -s build
    make -j8 # 开始编译
    # Ctrl+B d 断开,关掉 SSH 也没事

    # 之后重连
    ssh server
    tmux a -t build # 编译还在跑2. 开发分屏布局
    tmux new -s dev
    # Ctrl+B % 左右分屏
    # 左边写代码,右边跑程序
    # Ctrl+B ” 再上下分屏
    # 下面看日志—
    推荐配置
    # ~/.tmux.conf

    # 鼠标支持(可以用鼠标切换面板、调整大小)
    set -g mouse on

    # 从 1 开始编号(默认从 0 开始)
    set -g base-index 1
    setw -g pane-base-index 1

    # 更好用的分屏快捷键
    bind | split-window -h # Ctrl+B | 左右分
    bind – split-window -v # Ctrl+B – 上下分

    # 用 Alt+方向键 切换面板(不用先按 Ctrl+B)
    bind -n M-Left select-pane -L
    bind -n M-Right select-pane -R
    bind -n M-Up select-pane -U
    bind -n M-Down select-pane -D保存后执行 tmux source ~/.tmux.conf 生效。

    速记
    日常就这几个:
    • tmux / tmux a – 进入/恢复
    • Ctrl+B d – 断开
    • Ctrl+B % / ” – 分屏
    • Ctrl+B 方向键 – 切换面板
    用起来之后你会离不开它的,特别是 SSH 到服务器调试的时候。

  • hello world

    你好,第一次安装

  • 世界,您好!

    欢迎使用 WordPress。这是您的第一篇文章。编辑或删除它,然后开始写作吧!