c/c++
文章平均质量分 77
进击的编程浪人
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c++中的set容器介绍及操作
摘要: std::set是C++中基于红黑树实现的有序容器,核心特性包括元素唯一性和自动排序(默认升序)。其操作时间复杂度为O(logn),但不支持随机访问和直接修改元素值(需先删后插)。基本操作涵盖初始化、增删查及迭代器遍历;高级功能支持自定义排序(如结构体需重载operator<)和范围查询(lower_bound)。与vector相比,set适合频繁插入删除、有序去重场景,而vector胜在连续存储和随机访问。典型应用包括数据去重、黑名单过滤等。注意迭代器失效规则及自定义类型的比较规则要求。替代原创 2025-06-23 22:30:11 · 1154 阅读 · 0 评论 -
c++中的vector
/ 创建一个空的 vector,元素类型为 T// 创建一个空的 int 类型 vector初始化方式:默认构造:创建空的 `vector`。初始化列表:`vector<int> vec = {1, 2, 3};拷贝构造:`vector<int> vec2(vec);预留空间:`vec.reserve(n);` 预留存储 n 个元素的内存,但元素数量仍为 0。原创 2025-03-03 12:14:34 · 660 阅读 · 0 评论 -
c++中的一种无定义行为
在C++11及更高版本中,函数参数的求值顺序是未定义的,但函数调用本身是一个序列点。这意味着在函数调用中,参数的求值顺序虽然不确定,但函数调用的开始和结束之间是有顺序保证的。顺序保证(sequencedbefore/after)**有关,尤其是在C++11及更高版本中,C++标准引入了更严格的顺序规则来替代传统的序列点概念。在C++中,虽然“同一个语句中多次修改同一个变量”通常是未定义行为,但在某些情况下,标准通过引入明确的顺序保证来避免未定义行为。这里的行为是未定义的,因为参数的求值顺序是未定义的。原创 2025-01-20 14:38:47 · 970 阅读 · 0 评论 -
c++中指针的一个易错点(指向了未知的内存地址)
类型的指针,但此时它们并没有被初始化,也就是说,它们指向的是未知的内存地址。这样做的问题在于,如果你尝试访问这些未初始化的指针(例如通过解引用操作。在 C 和 C++ 中,指针是一个变量,用于存储另一个变量的内存地址。你可以把指针想象成一个“地址标签”,它指向内存中的某个位置。在你的代码中,可以选择较简单的方法,直接使用整型变量而不使用指针。),会导致未定义行为,因为你可能试图读取或写入一个不属于你的程序的内存区域。: 如果确实需要使用指针,你可以使用动态内存分配(在 C++ 中也可以使用。原创 2024-12-09 20:01:00 · 491 阅读 · 0 评论 -
sscanf和sprintf函数的返回值
函数返回值类型返回值含义sscanfint成功读取的数据项数;如果读取失败则返回0或EOFsprintfint写入的字符数(不包含字符串结束符);如果发生问题则未明示。原创 2024-12-09 18:50:34 · 601 阅读 · 0 评论 -
【无标题】c++中的cin.getline()函数
综上所述,确实读取从缓冲区开始到遇到换行符前的所有内容,并且会丢弃换行符。它是一种方便的方式来读取一行字符串输入,非常适用于需要读取文本行的场景。原创 2024-12-09 16:46:01 · 580 阅读 · 0 评论 -
【无标题】c++ 命名空间,cin.getline
输入流,通常是cin。char* s:字符数组,用于存储读取的字符串。:最大读取字符数,包括结尾的空字符\0。使用std命名空间可以让代码更简洁,但要注意潜在的命名冲突。是读取包含空格的整行字符串的理想工具,能够有效处理用户输入。原创 2024-12-08 23:40:59 · 631 阅读 · 0 评论 -
c++全局变量和存储区分类
全局变量属于静态存储区意味着它们的存储在程序的整个生命周期内是固定的,具有较长的生命周期和全局的可见性。这种特性可以很方便地在多个函数间共享数据,但也带来了可维护性和调试上的挑战。因此,在设计程序时,应该谨慎使用全局变量,尤其是在大型项目中。原创 2024-12-08 17:23:19 · 451 阅读 · 0 评论 -
c/c++中缓冲区,scanf,getchar的使用及关系
让我们深入探讨一下缓冲区的概念,scanf和getchar的使用,以及它们之间的关系。这些概念在C/C++编程中非常重要,特别是在处理用户输入时。原创 2024-12-07 15:37:28 · 376 阅读 · 0 评论 -
c/c++中字符串字面值为什么用指针更加合适
指向字符串字面值是因为它提供了一种安全、高效的方式来处理只读字符串,同时避免了在栈上分配不必要的内存。在现代 C/C++ 编程中,指向字符串字面值的指针是常用的做法。如果需要可写的字符串,通常会使用字符数组或动态分配的内存。字符串字面值在这里是只读的,意味着程序不能修改它们的内容。栈上的数据是可读可写的,但是其生存期是有限的,通常在函数返回时就会被释放。:指针的使用让你可以仅在需要时引用字符串,而不是在栈上分配内存。:如果你尝试修改指向字符串字面值的字符数组,可能会导致运行时错误。原创 2024-12-07 14:44:03 · 560 阅读 · 0 评论
分享