![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 52
y_dd
这个作者很懒,什么都没留下…
展开
-
c++文件判定是文件还是文件夹
C++文件读取原创 2023-03-21 16:40:34 · 986 阅读 · 0 评论 -
【智能指针-c++内存管理】
智能指针c/c++最为人诟病的是内存的管理,确保正确的时间,释放掉正确的内存,很难。c++11开始,新的库提供了智能指针,可以自动的管理内存,释放对象占用的内存。shared_ptr是一个模板,使用跟指针也几乎没什么差别shared_ptr p (new string(“abc”));指向string的指针p另外可以使用make_shared(q) 来创建一个指向q的智能指针原理:智能指针内部有个关联的计数器,无论是拷贝还是初始化或者传参等等,计数器都会递增(ps,具体实现不一定是一个计数)一原创 2022-05-08 20:08:38 · 623 阅读 · 0 评论 -
【c++运算符重载】
c++ 函数运算符重载原创 2022-04-26 20:08:40 · 1613 阅读 · 0 评论 -
which is of non-class type报错
which is of non-class type 报错c++编译代码遇到which is of non-class type代码展示分析修改c++编译代码遇到which is of non-class type代码展示CmdType* Context::getCmdType(const string& req){ vector<CmdType* >::iterator iter = _vecCmd.begin(); while((iter != _vecCmd原创 2021-10-21 15:34:26 · 7811 阅读 · 0 评论 -
unix环境编程学习-多线程
unix环境编程-多线程线程创建、终止创建终止线程退出线程取消线程清理程序线程同步互斥量读写锁带有超时的读写锁条件变量线程创建、终止创建int pthread_create(pthread_t * tid , cosnt pthread_attr_t* attr, void *(start_rtn)(void), void * restrict arg)tid为传出参数,新建线程的id注意,新线程并不保证哪个线程会先运行,如果新建线程中使用tid不安全终止三种线程终止方式:start_rt原创 2021-04-18 21:34:34 · 195 阅读 · 1 评论 -
pro*c/c++学习三:数据类型-宿主变量-游标-context变量
数据类型和宿主变量Oracle Datatypes内部类型,描述数据库表中字段。外部数据类型宿主变量声明可以用来声明宿主变量的类型指示变量格式如下::host_variable INDICATOR :indicator_variable 或者:host_variable:indicator_variable 变量的值以及含义如下:oracle限制如果DBMS=V7 or V8,使用SELECT或者FETCH 空的数据到宿主变量但是不使用指示变量,oracle报错如下:原创 2021-03-31 18:28:41 · 455 阅读 · 0 评论 -
C C++混合编译问题,gcc可以编译过,但是g++编译不过(restrict引起的问题)
C++中编译gcc可以编译过,但是g++编译不过的问题编译c c++混合的代码遇到的问题记录:代码库中引入了string vetor等c++相关,链接的时候报错 如下:对‘std::allocator::allocator()’未定义的引用对‘std::__cxx11::basic_string<char, std::char_traits, std::allocator >::basic_string(unsigned long, char, std::allocator const&原创 2021-02-28 22:14:45 · 814 阅读 · 0 评论 -
c++异常的生命周期
c++异常的生命周期三种接收异常的方式//情况一/catch (MyException & e){cout << “异常捕获” << endl;}///情况二catch (MyException e){cout << “异常捕获” << endl;}//情况三catch (MyException* e){cout << “异常捕获” << endl;delete e;}情况一,对应于调用构造原创 2021-02-28 22:05:21 · 130 阅读 · 0 评论 -
GMOCK学习笔记-CheatSheet.md
GMOCK学习笔记-说明:1.GMOCK中的说明文档CheatSheet.md。2.GMOCK基于多态实现,所以想要mock一个object,被mock的类必须有虚函数,可以在gmock的代码CheatSheet.md中看到这个说明mock使用mock一个普通的接口类Givenclass Foo { ... virtual ~Foo(); virtual int GetSize() const = 0; virtual string Describe(const char* n原创 2021-02-01 22:16:56 · 1010 阅读 · 0 评论 -
C++多态的学习-理解指针和引用可以多态?子类保存的父类指针不能多态?
促使我写这篇文档的动力,对于多态的原理不明白,对多态模糊,综合运用的时候就迷糊。什么是多态,什么时候会发生多态,为什么只有指针和引用可以实现多态?什么是多态一句话总结就是基类的指针或者引用可以访问到实际指向的子类的函数。多态的实现前提是该函数在在基类中必须是虚函数,在子类中必须重写(函数的声明完全一致,参数以及返回值完全类型一致)多态的原理一句话总结,类虚函数表实现。该虚函数表是类所维护,所有该类的对象拥有相同的一张表。当一个函数使用了virtual时候,类会保存一个虚函数表的指针,指向了实际原创 2021-01-31 22:22:42 · 249 阅读 · 0 评论 -
数据结构与算法-栈的应用
逆序输出输出的次序和处理次序相反,而且递归的深度不容易预知。比如进制转换,括号匹配//进制转换void convert(stack<char> &s, int n, int base){ char digit[] = { '0', '1','2', '3','4', '5','6', '7','8', '9','A', 'B','C', 'D','E','F' }; while (n > 0) { s.push(digit[n % base]); n /=..原创 2021-01-02 14:23:57 · 144 阅读 · 0 评论 -
二路归并 c++实现
二路归并时间复杂度。CBA(基于比较)的排序算法的最好的复杂度是o(nlogn),最坏情况o(n^2) 归并排序的算法即使在最坏情况下复杂度都是O(nlogn)归并算法是分治策略的应用1)将待排序序列一分为二,时间o(1) 2)对于划分的子序列,分别递归排序 ----分 2*o(n/2)3)当子序列分别有序,合并有序子序列 ---治 o(n)T(n) = 2*T(n / 2) + o(n)这个递推式的结果可以数学方面计算,最终是o(nlogn)[4, 8,68, 8, 32, 7,原创 2020-12-27 19:58:37 · 381 阅读 · 0 评论 -
c++算法,查找最长连续序列的思路
c++算法小白入门,一个小例子分享一些小思路//查找最长连续队列的长度/例如 6, 56, 2, 7, 23, 8, 5, 8,最长为4/方法一:最容易想到的暴力破解法思路:寻找连续的序列,记录每一个序列长度,直到找到一个最长的序列问题:我怎么能够方便的找到连续的序列?这里也选择简单粗暴的方法,排序。最终一个简单的实现如下:int test02() { vector<int> vn = { 23, 8, 3, 9,1,65,7 }; sort原创 2020-11-15 21:15:39 · 913 阅读 · 0 评论 -
泛型算法之仿函数适配器,bind1st mem_fn等的原理是什么
STL中的函数适配器bind mem_fun原理函数适配器它的本质是一个函数,内部封装了一个模板类对象。对象调用operator()完成适配功能函数适配器要解决的问题是,无法匹配算法的函数,适配成可用于算法的函数。有bind1st bind2nd mem_fun mem_fun_ref 等其中后两个用于适配对象的成员函数另外c++11增加了bind函数举一个例子:查找vector中第一个小于10的数据,greater_equal用在下面就会编译报错vector<int> v原创 2020-10-28 20:03:30 · 292 阅读 · 0 评论