logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C/C++项目练习:命令行记账本

本文详细介绍了从零设计一个命令行记账本程序的完整过程。通过第一性原理拆解核心需求,定义交易数据结构为包含日期、金额和描述的结构体,采用动态数组实现账本管理。重点阐述了内存管理策略,包括结构体创建、扩容机制和销毁时的资源释放顺序。文章还设计了CSV格式的文件持久化方案,实现数据保存与加载功能。最后通过模块化编程将项目分为数据结构、核心逻辑和用户界面三个部分,构建出一个健壮的命令行应用程序。整个设计过

文章图片
#c++#开发语言
数据结构:下三角矩阵(Lower Triangular Matrix)

下三角矩阵是指主对角线以上元素全为0的n×n矩阵。存储时只需保存下三角区域元素(共n(n+1)/2个)。采用行主序存储时,元素A[i][j](i≥j)在一维数组中的位置k可通过公式k=(i-1)*i/2+(j-1)计算。例如4×4矩阵中A[4][2]的索引k=7。该公式仅适用于i≥j的情况,i<j的元素为0无需存储。

文章图片
#矩阵#数据结构
c++:有序关联容器(std::set)

🔧 红黑树是一种特殊的二叉搜索树(BST),满足这些规则:每个节点不是“红色”就是“黑色”根节点是黑色所有叶子节点(nullptr)是黑色红色节点的子节点必须是黑色从任一节点到其所有叶子节点的路径中,黑色节点数相同(黑高平衡)通过这些规则,红黑树保持平衡,避免出现像链表那样的“最坏情况”默认是从小到大排序。也可以写自己的比较函数(用于排序对象类型)。

文章图片
#c++#开发语言
c++ 多个.cpp文件运行

在一个C++项目中,多个.cpp文件不能同时拥有并运行多个main函数,因为C++程序只能有一个入口点(main函数)。编译器在链接时会报错“multiple definition of main”的错误。

文章图片
#c++#开发语言#c语言
c++:模板(template)

C++ 模板就是“用类型做参数”的工具,让你写出能适应各种类型的通用代码,是 C++ 泛型编程的基石。 

文章图片
#c++#开发语言#c语言
c++ 静态 static关键字

类型生命周期作用域初始化时机静态局部变量程序运行期间函数内部第一次调用时静态全局变量程序运行期间文件内部程序启动时静态函数程序运行期间文件内部无需初始化静态成员变量程序运行期间类范围类外定义时静态成员函数程序运行期间类范围无需初始化7. 常见问题为什么用 static?控制作用域(限制访问)。延长生命周期(避免重复初始化)。实现类级别的共享数据或行为。和非静态的区别?非静态变量/函数依赖对象实例,

文章图片
#c++#开发语言#c语言
c++:迭代器(Iterator)

迭代器 = “智能指针”,用来一个一个地访问容器中的元素。你可以想象迭代器像是容器中的“手指”或“光标”:指着某个元素可以向前走(甚至有些还能往后走)能取出或修改元素示例对比:用数组 vs 用迭代器i < 3;i++) {改成vector+ 迭代器写法:it!= v.end();++it) {v.begin():返回指向第一个元素的迭代器v.end():返回“超出最后一个元素的下一个位置”的迭代器

文章图片
#c++#开发语言
c++:算法(Algorithms)

C++ STL(标准模板库)中的算法是 STL 的三大核心组成之一,另外两个是和。STL 提供了大量的泛型算法,这些算法不依赖于特定容器,而是通过迭代器操作容器中的元素。这一设计体现了 STL 的高度抽象性和复用性。

文章图片
#c++#开发语言
SQL思路解析:窗口函数该如何使用?

题目要求找出最后一个登上巴士且总重量不超过1000kg的乘客。解决思路是: 按上车顺序(turn)排列乘客 计算累积重量(cumulative_weight) 筛选累积重量≤1000kg的乘客 取其中上车顺序(turn)最大的乘客 SQL解决方案: SELECT person_name FROM ( SELECT person_name, SUM(weight) OVER(ORDER BY tur

文章图片
#sql#数据库
c++:进阶语法总结

本文摘要: C++中阶学习聚焦高级特性与OOP编程,涵盖面向对象核心概念(封装、继承、多态)、智能指针内存管理、STL进阶用法(容器/算法/迭代器)、现代C++特性(11/14/17标准)、异常处理、多线程编程、文件操作及模板编程。重点包括虚函数机制、移动语义、lambda表达式、线程同步技术等,旨在培养编写复杂程序能力,为系统级开发奠定基础。特别注意现代C++在资源管理、并发编程方面的改进,如智

文章图片
#c++#开发语言
    共 34 条
  • 1
  • 2
  • 3
  • 4
  • 请选择