C++的大坑
2021/12/6 9:17:56
本文主要是介绍C++的大坑,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
https://www.eet-china.com/mp/a49223.html
无符号整数的错误使用
for (unsigned int i = 10; i >= 0; --i) { ... }
上面这段代码会发生什么? 会死循环,这里要注意下无符号整数的使用。
容器的size()返回类型是无符号整数
std::vector<int> vec; vec.push_back(1); for (auto idx = vec.size(); idx >= 0; idx--) { cout << "===== \n"; }
memcpy、memset只适用于POD结构.
什么事pod 结构 就是很结构很存粹。 自己理解吧。 https://blog.csdn.net/Jxianxu/article/details/80524526 https://zhuanlan.zhihu.com/p/45545035
STL遍历删除时注意迭代器失效问题
https://www.cnblogs.com/zhangkele/p/10538144.html 字节博客的
容器分为三类 数组类型 链表类型 关联容器类型 失效的情况也不统一 注意细节
std::list排序使用自己的成员方法 一般的容器排序都使用std::sort(),但是list特殊。
int main() { std::list<int> list{1, 2, 3, 2}; list.sort(); // //sort(list.begin(), list.end()); // 容器中list 是有两种排序算法 但是输入 一种是默认的 一种是 函数对象或者 lambda 但是不是类似其他容器那样传入 迭代器 看下面的链接去吧 for (auto i : list) { std::cout << i << " "; } std::cout << "\n"; return 0; } https://blog.csdn.net/baidu_35679960/article/details/79592318 //看这个链接
基类析构函数要是虚函数
如果不是虚函数的话,可能会有内存泄漏的问题 项目中真实的踩过坑哈 要注意呀
new/delete、new[]/delete[]、malloc/free严格配对
成员变量初始化
成员变量没有默认初始化行为,需要手动初始化。 这个也踩过坑 要自己初始化 不要依赖编译器
不要返回局部变量的指针或引用
常见问题哈 没什么好说的
vector clear和swap问题 首先要理解这两个api 最终带来的结果是什么 尤其是 clear 会改变什么 clear 并不会释放我们的内存空间 只会改变容器的 size 并不会改变 capctive 容量
https://blog.csdn.net/wangshubo1989/article/details/50359750
这篇关于C++的大坑的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24CAP:Serverless?+AI?让应用开发更简单
- 2024-12-23新能源车企如何通过CRM工具优化客户关系管理,增强客户忠诚度与品牌影响力
- 2024-12-23原创tauri2.1+vite6.0+rust+arco客户端os平台系统|tauri2+rust桌面os管理
- 2024-12-23DevExpress 怎么实现右键菜单(Context Menu)显示中文?-icode9专业技术文章分享
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享
- 2024-12-22el-tabs 组件只被引用了一次,但有时会渲染两次是什么原因?-icode9专业技术文章分享
- 2024-12-22wordpress有哪些好的安全插件?-icode9专业技术文章分享
- 2024-12-22wordpress如何查看系统有哪些cron任务?-icode9专业技术文章分享
- 2024-12-21Svg Sprite Icon教程:轻松入门与应用指南
- 2024-12-20Excel数据导出实战:新手必学的简单教程