随笔分类 - 编程语言
持续更新中
摘要:一、问题简介 在C++的开发工作中,经常会将STL的标准容器进行一层封装,以满足更高级的需求,如支持外部内存等。在封装容器时,容易出现问题的地方包括容器的元素运算符以及容器的内存分配器,本人在做相关的工作时,将上述两方面所遇到问题的分析解决方法进行了如下总结。 二、问题一:重载运算符时的问题 对于被
阅读全文
摘要:一、分享简介 C++的STL支持了多种容器供开发者操作,然而这些容器使用的是系统内存,使用者无法直接管理。边缘端的嵌入式设备通常会要求对使用的内存进行管理,因此封装出支持外部内存功能的STL容器就显得十分必要。本案例针对被封装容器的使用方法进行了经验分享,具体涉及3种顺序容器(CVector/CLi
阅读全文
摘要:在使用vector时,涉及到了统计vector的元素个数,本应该使用.size(),但一开始由于记错用法了,犯了个很低级的错误,竟然使用了sizeof。后来竟然发现一个奇妙的地方。int型数据的大小是4,本以为会输出10和40,或者是10和4,但事实输出的是10和16!!! 1 ector<int>
阅读全文
摘要:最近刷LeetCode会遇到这样的情景:从输入设备读取一串元素,将它们存入vector内后进行处理,最后将这些元素输出。如: 括号生成(Python and C++解法) 1 int main() { 2 Solution s; 3 for (auto c : s.generateParenthes
阅读全文
摘要:.h:头文件,一般包含类、结构、宏等的定义,一般来说,.h为扩展名的文件和.cpp为扩展名的文件是一一对应配合使用的; .cpp:源代码文件,也叫实现文件,用来存放类的实现代码,按C++语法编译处理; .exe:程序的可执行文件,仅当编译和链接步骤都成功后才能生成该文件; .pdb:(Program
阅读全文
摘要:1、list 定义时:=[] 或者 =list(),取元素时操作 [] list.pop(index) #将list中index位置元素剔除,默认删除最后一个元素; list.remove(value) #删除list中值为value的元素; append函数在队尾插入元素;list.insert(
阅读全文
摘要:1、C++采用复合赋值运算符(如a+=b、c*=d)可以更高效地进行运算,编译器在生成目标代码时能够直接优化,使程序代码更小。 2、由于位运算的速度很快,在程序中遇到表达式乘以或除以2的幂的情况,一般采用位运算来代替。 3、递归程序的运行效率比较低,无论是从时间角度还是空间角度,都比非递归程序差,对
阅读全文
摘要:列表是python一种有序的集合(和C++中的数组类似),其中的元素可以随时添加和删除,是python中最基本的数据结构之一。由于python操作的简单性和灵活性,初始化list的操作方式也多种多样,但是不同的方法带来的运行时间是不一样的。 下面测试一下几种常用的列表初始化方法的实际运行时间: 1
阅读全文