- 博客(162)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注

原创 【C++】C++入门实战教程(打造属于自己的C++知识库)
关于C++的学习路线,学习C++是一个系统性的过程,涉及语言基础、标准库、面向对象编程、高级特性等多个方面。1. 基础入门了解C++:学习C++的历史、特点和应用领域。开发环境搭建:安装编译器(如GCC或Visual Studio),配置开发环境。基础语法:学习变量、数据类型、运算符、控制结构(if、switch、loops)。2. 函数和控制结构函数:了解函数的定义、声明、参数传递和返回值。作用域和生命周期:理解局部变量和全局变量的作用域。递归:学习递归函数的概念和使用。3. 数据结构。
2024-07-13 10:38:27
2238

原创 【Linux/Vim】Vim使用教程及速查手册
Vim介绍;Vim是什么;Vim的安装;Vim默认安装的系统;Vim的安装方法;检查Vim是否安装成功;Vim,Vi,gvim的区别;/.vimrc配置文件介绍及使用方法;vimrc 的介绍;vimrc 的使用方法;Vim使用方法;Vim的模式;Vim一般命令模式常用操作;Vim编辑模式常用操作Vim命令行;
2024-07-12 07:10:11
2080

原创 【Visual Studio】Visual Studio使用技巧及报错解决合集
持续更新Visual Studio报错及解决方法,包括Visual Studio报错问题及解决方法、Visual Studio操作过程中遇到的问题及解决方法、Visual Studio编译优化选项、Visual Studio快捷键等内容。
2024-07-12 07:09:45
3366

原创 【linux/shell案例实战】Linux/shell教程实战技巧案例汇总
linux教程;shell教程;awk教程;sed教程;unix教程;SunOS;Oracle Solaris
2024-06-29 11:08:42
310
原创 【C++】C++实现字符串转时间戳功能
库来实现字符串到时间戳的转换。请注意,这个示例假设输入的字符串格式是"YYYY-MM-DD HH:MM:SS"。如果你的时间字符串格式不同,你需要调整。这个程序首先包含了必要的头文件,然后定义了一个。函数,该函数接受一个时间字符串作为参数。函数中,我们创建了一个时间字符串,并调用。函数将其转换为时间戳,然后输出结果。的格式字符串以匹配你的输入格式。来解析时间字符串,并填充一个。在C++中,可以使用。
2024-12-21 11:36:23
544
原创 【C++】C++实现时间戳转字符串功能
头文件来实现时间戳到字符串的转换。请注意,这个例子使用的是本地时间。如果你需要处理UTC时间,可以使用。你可以根据需要调整日期时间的格式。• 最后,将格式化的字符串返回。类型的时间戳转换为本地时间的。结构体格式化为字符串,格式为。,即年-月-日 时:分:秒。类型来存储Unix时间戳。支持多种格式化选项,例如。在C++中,你可以使用。
2024-12-21 08:00:00
594
原创 【C++】C++中的std::cerr详解
不会刷新其关联的缓冲区,这意味着输出通常会立即显示,这对于错误消息来说是很重要的,因为它们通常需要立即被注意到。的内容会立即输出到标准错误设备(通常是终端或控制台)。输出,它们的输出顺序是未定义的,除非使用。不会缓冲,错误信息会立即显示在控制台上。是标准库中的一个标准错误流对象,它与。通常用于输出程序运行时的错误信息。来输出换行符并刷新缓冲区,或者使用。是同步的,这意味着如果你同时使用。不会缓冲输出,这意味着写入。相同的格式化操作,包括使用。类似,都是输出流,但是。输出,而错误信息通过。
2024-12-20 20:09:55
698
原创 【C++】C++中的std::nothrow详解
关键字用于指定函数或操作不应该抛出异常。它通常与动态内存分配和一些标准库函数一起使用,以确保程序在执行时不会因为内存分配失败而抛出异常。这样可以提高程序的健壮性,避免因异常而导致程序崩溃。来确保在内存分配失败时不抛出异常,而是返回。参数,以确保在内存分配失败时不抛出异常。参数,以确保在内存分配失败时不抛出异常。用于分配内存,如果内存分配失败,则返回。结合使用,以确保不抛出异常。等)的构造函数和成员函数(如。• 一些标准库容器(如。在这个示例中,我们使用。
2024-12-20 20:09:44
382
原创 【C++】C++中的lambda函数详解
Lambda函数在C++11中引入,它们提供了一种灵活的方式来定义和使用函数对象,特别是在需要临时函数或者回调函数时非常有用。C++中的lambda函数是一种匿名函数,它允许你在代码中直接定义一个函数对象,而不需要提前声明一个函数名。Lambda函数通常用于编写简短的函数,这些函数可能只会被调用一次或者在某些特定的上下文中使用。• ->return_type:返回类型,如果函数返回void或者函数体只有一条return语句,可以省略返回类型。
2024-12-20 20:09:22
280
原创 【C++】C++实现字符串大小写转换功能
是一个泛型算法,可以用来对序列中的每个元素应用一个给定的函数,并把结果存储到另一个序列中。函数,而第二种方法则是通过手动遍历字符串中的每个字符来实现。两种方法都是有效且常用的。在C++中,实现字符串大小写转换可以通过标准库中的函数来完成。这两种方法都可以实现字符串的大小写转换。第一种方法使用了标准库的。,也可以通过遍历字符串中的每个字符,并使用。函数来转换字符的大小写。
2024-12-20 20:03:22
704
原创 【C++】C++中使用new创建对象和直接创建类对象的关键区别
智能指针可以帮助管理这种风险。new 创建的对象:适用于需要在程序的多个部分共享对象,或者对象的生命周期需要跨越多个函数调用的情况。new 创建的对象:提供了更大的灵活性,因为它们可以在程序的任何地方使用,不局限于它们被创建的作用域。直接创建的对象:构造函数和析构函数的调用是自动的,由编译器在对象创建和作用域结束时自动处理。直接创建的对象:适用于对象只在当前函数或代码块中使用,且不需要在程序的其他部分共享的情况。直接创建的对象:如果构造过程中抛出异常,对象的内存会在作用域结束时自动释放。
2024-12-18 08:05:02
616
原创 【linux】linux将打印显示在终端屏幕中的内容保存在文件中
近期遇到一个问题,就是在shell脚本执行过程中,会打印一些执行或异常处理信息在屏幕上,为了便于回溯执行过程和异常检查,需要将当次执行过程保存到文件中,所以总结了以下方法,其中script output.txt这个命令亲测好用!在Linux系统中,可以使用多种方法将屏幕内容保存到文件中。
2024-12-13 10:38:56
1053
原创 【git】git合并分支功能rebase和merge的区别
在 Git 中, rebase 和 merge 都是将两个分支的更改合并的方法,但它们在合并过程中的行为和结果有所不同。
2024-12-06 15:20:57
773
原创 Unicode编码详细介绍
Unicode使用16位(即2个字节)的数字来表示一个字符,这称为"码点"(code point)。然而,由于字符数量的增加,Unicode 10.0版本之后引入了更多的码点,这些码点超出了基本多文种平面(BMP),需要使用代理对(surrogate pairs)在UTF-16编码中表示。1. 唯一性:每个字符都有一个唯一的码点(code point),确保了字符的唯一性。UTF-32:使用4个字节来表示一个字符,每个字符的码点直接映射为字节序列。
2024-07-30 21:05:26
950
原创 【C++】C++中的std::generate函数详解
在C++中,是一个标准库算法,定义在头文件中。这个算法特别有用,当你需要初始化一个容器或一个数组的元素时,而这些元素的值可以通过某种计算或函数生成。
2024-07-28 16:54:25
1691
原创 【C++】C++中的std::fill函数使用详解
本文主要对C++中的std::fill函数使用进行详解,对比std::fill 和 std::fill_n的差异,以及介绍初始化容器的其他方法
2024-07-28 16:46:05
4134
原创 【C++】C++中的find方法介绍
find 函数是 std::string 类中非常有用的成员函数之一,它提供了灵活的方式来查找子字符串或字符。使用 npos 可以检查查找操作是否成功。
2024-07-25 09:47:19
2380
原创 【C++】C++中查找并替换字符串中的特定单个字符、多个字符、中文字符
请注意,如果字符串中没有要替换的字符, std::replace 不会执行任何操作,因此这两个方法在这种情况下都是高效的。如果你需要替换的字符在字符串中不存在,使用 std::replace 的方法会稍微更快一些,因为它内部优化了查找和替换的过程。此外, std::string::find 和 std::string::replace 函数在处理多字节字符时可能会有些复杂,因为它们可能不会正确识别多字节字符的边界。std::replace 是C++标准库中的一个函数,可以替换字符串中的字符。
2024-07-25 09:44:13
5859
原创 【C++】C++如何使用结构体中的枚举类型
在这个示例中, ColorInfo 结构体中定义了一个名为 Color 的枚举类型,并使用它作为成员变量 color 的类型。构造函数 ColorInfo 接受一个 Color 枚举值作为参数,并将其用作初始化成员变量 color。
2024-07-24 20:42:04
755
原创 【C++】C++中函数使用引用参数
在C++中,函数可以通过引用传递参数,这意味着函数接收的是参数的引用,而不是其副本。这允许函数直接修改原始数据,并且可以提高性能,因为避免了复制大型对象的开销。
2024-07-24 20:39:45
607
原创 【C++】C++中final关键字解析
在 C++ 中,是一个关键字,用于阻止进一步重写某个虚函数。当你在一个派生类的虚函数声明中使用关键字时,它表明这个函数在该派生类中是最终的实现,不能被任何更深层次的派生类重写。
2024-07-23 20:47:22
485
原创 【C++】C++中关键字override解析
在 C++ 中,override是一个关键字,用于明确地指示一个函数是基类虚函数的重写。使用override关键字可以提高代码的可读性和可维护性,同时帮助编译器检测潜在的错误。
2024-07-23 20:44:11
400
原创 【git】git中的rebase命令解析
在 Git 中, rebase 是一种强大的命令,用于将一个分支的更改重新应用到另一个分支的顶部。总的来说, rebase 是一个强大的工具,可以帮助你更有效地管理分支和提交历史,但也需要谨慎使用,以避免不必要的麻烦。假设你有一个名为 feature 的分支,你想要将这个分支的更改合并到 master 分支上。通常在开发过程中,当你需要将最新的主分支更改合并到你的功能分支时,可以使用 rebase。因此,通常建议在私有分支或功能分支上使用 rebase ,而不是在共享的公共分支上。
2024-07-22 10:12:45
748
原创 【git】github中的Pull Request是什么
在 Git 中,"pull request"(简称 PR)是一种在分布式版本控制系统中使用的功能,特别是在使用 GitHub、GitLab、Bitbucket 等基于 Git 的代码托管平台时。在命令行中,你通常不会直接创建或管理 Pull Request,而是通过 Git 命令推送更改到远程仓库,然后使用代码托管平台的 Web 界面来创建和管理 Pull Request。然后,开发者可以在代码托管平台(如 GitHub)上发起一个 Pull Request,请求将他们的分支合并到另一个分支。
2024-07-22 10:09:17
1261
原创 【git】git中的origin是什么意思
在 Git 中, origin 通常是指默认的远程仓库名称。当你克隆一个 Git 仓库时,克隆的仓库地址会被自动设置为远程仓库,并且默认的远程仓库名称是 origin。origin 是一个默认名称,你可以在克隆仓库时指定不同的名称,或者在克隆后通过 git remote rename 命令更改远程仓库的名称。这将从 origin 仓库的对应分支拉取更改并合并到你的本地分支。这会克隆仓库并默认将远程仓库名称设置为 origin。这将更改 origin 的 URL 为新的仓库地址。
2024-07-22 10:03:53
2357
原创 【git】git中的--set-upstream设置本地分支跟踪远程分支
git --set-upstream 是一个 Git 命令,用于设置本地分支跟踪远程分支。当你使用这个命令时,Git 会记住你指定的远程分支,这样在以后执行 git push 或 git pull 时,Git 就会自动知道应该与哪个远程分支交互。<branch-name> 是你想要设置跟踪的远程分支的名称。如果你没有指定远程分支名称,Git 会默认设置为 origin 下的同名分支。这会设置当前分支跟踪 origin 上的同名分支。这将列出所有本地分支及其跟踪的远程分支。
2024-07-22 10:01:03
2399
原创 【C++】C++内存泄漏介绍及解决方案
内存泄漏通常发生在动态内存分配后,由于某些原因,分配的内存没有被正确释放,导致程序随着时间推移消耗越来越多的内存,最终可能导致程序崩溃或系统资源耗尽。:使用内存分析工具,如Valgrind、AddressSanitizer等,来检测内存泄漏和其他内存问题。:利用C++11及更高版本的语言特性,如自动类型推导、基于范围的for循环等,来减少错误。,它们可以自动管理内存,当智能指针超出作用域时,会自动释放它们所管理的内存。:确保资源的获取和释放与对象的生命周期绑定,对象销毁时自动释放资源。
2024-07-21 22:14:04
1071
原创 【C++】C++中使用using namespace std;时,如何避免潜在的名称冲突问题?
可能会降低代码的可读性,特别是对于不熟悉标准库的读者来说,他们可能无法立即识别代码中使用的实体属于。如果名称冲突是由于代码设计不当引起的,考虑重构代码,将相关的代码移动到不同的命名空间或类中。:如果发现名称冲突,考虑重构代码,使用更具体的命名或将冲突的代码移动到不同的命名空间中。可能会影响代码的重用性,因为当代码被复制到其他作用域时,可能会引入意外的名称冲突。语句用于告诉编译器,在当前的代码块中,使用标准库中的所有名称而不需要前缀。在设计自己的类和函数时,使用不同的命名约定,避免与标准库中的名称冲突。
2024-07-21 22:03:14
1398
原创 【C++】C++标准库iostream中cin、cout、cerr、clog方法解析
C++标准库iostream中cin、cout、cerr、clog方法解析,分别介绍cin、cout、cerr、clog具体使用方法和示例
2024-07-19 13:59:20
2985
原创 【C++】C++中find_first_of函数解析
在C++中, find_first_of 是 std::string 类的一个成员函数,用于在字符串中查找第一次出现的任何字符(或字符序列)的索引位置。这个函数可以接收单个字符或字符序列作为参数,并返回第一个匹配项的起始位置。
2024-07-19 13:49:29
1109
原创 【C++】_findfirst 、_findnext和_findclose函数以及_finddata_t结构体详解
请注意, _findfirst 、 _findnext 和 _findclose 函数以及 _finddata_t 结构体都不是C++标准的一部分,它们是特定于某些编译器和操作系统的。_finddata_t 是一个结构体,它在旧的C运行时库中使用,特别是在使用 _findfirst 和 _findnext 函数时,这些函数用于在DOS和Windows系统中查找文件。time_access : 文件最后访问的时间,对于FAT文件系统,这个值同样是 -1L。
2024-07-18 22:45:32
606
原创 【C++】C++中的assign函数详解
如果 len 被设置为 std::string::npos (这是 std::string 类的一个特殊值,表示直到字符串的末尾),则子串将从 pos 开始一直到传入字符串的末尾。在C++中, assign 是 std::string 类的一个成员函数,用于给字符串对象赋值,可以替换字符串对象中的内容为另一个字符串或字符串的一部分。第三个和第四个版本接受一个C风格的字符串 s 和一个长度 n 或者整个字符串,将当前字符串对象的内容替换为C字符串的前 n 个字符或整个字符串。
2024-07-18 08:46:24
2432
原创 【C++】C++中的strcat函数详解
C++中也提供了这个函数,但更推荐使用C++标准库中的 std::string 类来处理字符串,因为它提供了更多的功能和更好的安全性。目标字符串 dest 必须有足够的空间来容纳 src 的内容,包括终止的空字符 \0。在C++中,推荐使用 std::string 来处理字符串,因为它提供了更多的功能和自动内存管理。dest : 指向目标字符串的指针,该字符串将被扩展以包含 src 的内容。函数返回指向目标字符串 dest 的指针。src : 指向要连接的源字符串的指针。
2024-07-17 07:11:02
1607
原创 【C++】C++中的getcwd函数详解
请注意,由于 getcwd 可能会改变 errno 的值,因此在使用它之后,如果需要检查错误,应该立即检查 errno。在C++中, getcwd 是一个用于获取当前工作目录的函数,它是POSIX标准的一部分,定义在 头文件中(在Windows上,它定义在 中)。函数返回指向 buf 的指针,如果调用成功,返回的指针指向包含当前工作目录路径的字符串;buf :一个指向字符数组的指针,用于存储当前工作目录的路径。size :缓冲区的大小,以字节为单位。
2024-07-17 07:10:52
1024
原创 【C++】C++中的strcpy函数详解
这个函数会将一个字符串复制到另一个字符串中,包括空字符 '\0' ,它标志着字符串的结束。如果你必须使用 C 风格的字符串,并且需要确保安全,可以使用 strncpy 函数,它允许你指定最大复制的字符数,从而避免溢出。注意:在上面的示例中, dest 数组的大小必须至少和 src 字符串一样大,包括空字符。如果 dest 不够大,就会发生缓冲区溢出。然而,使用 strcpy 时需要特别小心,因为它不会检查目标数组的大小,如果目标数组不够大,就可能发生缓冲区溢出,这是一个常见的安全问题。
2024-07-16 08:06:17
3255
1
原创 【C++】C++获取当前系统时间
在C++中, localtime 是一个标准库函数,用于将自UTC时间1970年1月1日午夜(即UNIX纪元时间0点)以来的秒数转换为本地时间的 tm 结构表示。注意, tm_year 字段是从1900年开始计数的,而 tm_mon 字段是从0开始计数的,所以在打印时需要做相应的调整。2. double difftime(time_t time1, time_t time2) : 计算两个时间戳之间的差异,返回一个 double 类型的值,表示时间1比时间2多出的秒数。
2024-07-16 08:06:01
4086
原创 【C++】C++中的堆和栈介绍和区别
在堆上分配内存时,如果发生异常,需要程序员确保使用异常安全的编程实践,如智能指针,以避免内存泄漏。堆的内存需要程序员手动管理,不正确的管理(如内存泄漏或野指针)可能导致程序崩溃或不可预测的行为。栈的内存分配和回收速度通常比堆快,因为栈的内存分配是连续的,并且遵循后进先出(LIFO)的原则。堆的大小通常由系统内存大小决定,理论上可以非常大,但实际使用中会受到内存碎片和可用内存的限制。堆的内存分配和回收可能较慢,因为需要搜索合适的内存块并处理内存碎片等问题。栈的内存由操作系统自动管理,无需程序员干预。
2024-07-15 10:43:04
527
原创 【C++】C++中的std::nothrow使用方法
它是 std::nothrow_t 类型的实例,通常用在 new 运算符和 std::nothrow 命名空间中,以请求内存分配器在分配失败时返回一个空指针,而不是抛出 std::bad_alloc 异常。使用 std::nothrow 可以提供一种机制来优雅地处理内存分配失败的情况,而不是让程序异常终止。使用 std::nothrow 的一个常见场景是,当程序需要处理可能的内存分配失败,但又希望避免异常带来的开销或复杂性。// 可以选择使用 std::nothrow 来避免异常。
2024-07-15 10:27:52
1006
原创 【C++】C++中的ADL机制在使用using namespace时查找混乱问题
在C++中,ADL代表“Argument-Dependent Lookup”,即“参数依赖查找”。这是一种机制,允许编译器在查找函数名时,根据传递给函数的参数类型来决定查找的命名空间。简单来说,ADL允许编译器在不同的命名空间中查找与参数类型匹配的函数。例如,如果你有一个函数重载集,并且你想调用一个函数,其参数类型与某个命名空间中的类型匹配,编译器会优先选择那个命名空间中的函数,而不是全局命名空间中的同名函数。
2024-07-14 10:47:23
925
obsidian离线插件大全
2023-04-24
C++多线程的使用场景有哪些?
2022-10-03
shell awk或sed中提取一对字符之间的数据
2021-05-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人