C++
文章平均质量分 68
Wuli啊坡
拙劣的电路焊接员,勤劳的代码复制者
展开
-
如何在Python中调用C++的函数?DTW
在Pyhon中调用C++函数,加快计算速度,以DTW函数为例原创 2022-12-03 20:20:32 · 713 阅读 · 2 评论 -
C++面试常用知识点
1、new和malloc的区别new操作符从自由存储区上为对象动态分配内存空间,而malloc函数从堆上动态分配内存;new内存分配失败时会抛出bac_alloc异常,malloc分配内存失败时返回NULL;new会调用构造和析构,malloc不会;2、什么时候使用多进程,什么时候使用多线程这个问题我没有找到答案,自己强行答一下:线程是共享资源的,所以在稳定性方面会差一些,比如读取写入的时候可能有冲突,但线程创建和销毁的代价很小,当需要经常创建销毁的时候可以使用线程,当为了稳定性的时候可以使用进原创 2021-03-18 14:02:14 · 198 阅读 · 1 评论 -
C++设计模式初探(二)
一、简单工厂模式考虑这样一个场景,王者荣耀的英雄池里面有很多英雄类,当选择一个英雄的时候,就相当于实例化了一个类对象,比如 new 亚瑟,new 妲己……传统的方法是在顶层直接调用 new+类名 来构造一个对象,但是如果类的构造过程十分复杂,而顶层逻辑并不关心具体的构造过程,就可以使用工厂模式。创建一个工厂类,其有一个create函数,根据传入的参数不同,返回不同的对象。#include <iostream>using namespace std;//抽象英雄类class Abstra原创 2021-03-18 14:01:58 · 227 阅读 · 0 评论 -
C++设计模式初探(一)
一、总则单一职责原则:每个类只做一件事,确保引起类变化的原因只有一个;开闭原则:对扩展开放,对修改关闭。要增加功能,通过增加代码实现,而不是修改原代码;里氏代换原则(LSP):抽象类出现的地方,都可以用他子类代替;依赖倒转原则:依赖抽象而不是具体接口隔离原则:一个接口干一件事;合成复用原则:继承会使父类可能影响子类,因此优先用组合;迪米特原则(最少知识原则):一个类对象尽可能少的了解其他类,中介二、开闭原则#include <iostream>using namespac原创 2021-03-17 21:19:55 · 133 阅读 · 0 评论 -
STL学习小计(四)——C++异常处理
四、C++异常处理4.1 基础语法double divide(int x, int y) throw(int,char,float)//接口异常声明{ if (y == 0) { throw y;//抛出异常y,类型为int } return x / y;}int main(){ try { divide(1, 0); } catch (int)//根据类型匹配,int匹配int { cout << "除数为0" << endl; }原创 2021-02-24 17:32:52 · 156 阅读 · 0 评论 -
STL学习小计(三)——C++ 类型转换
三、C++ 类型转换3.1 static_cast 静态转换用于C++内置元素类型的转换,以及具有继承关系的指针或引用。内置元素类型转换:int a = 97;char c = static_cast<char>(a);cout << c << endl; //输出为 a具有继承关系的指针或引用class Animal {};class Cat :public Animal {};Animal *Animal_1 = NULL;//待转换的指针必须原创 2021-02-21 14:41:27 · 206 阅读 · 0 评论 -
STL学习小计(二)——自定义实现 MyArry数组
二原创 2021-02-20 17:17:18 · 274 阅读 · 0 评论 -
简述C++内存四区
1、栈区存放局部变量、函数参数、返回数据和返回地址。可以理解为是函数调用栈,函数执行完成后从栈顶弹出,自动回收内存,这都是由系统自动完成的。2、堆区手动分配的内存,如通过malloc()申请的空间。特点是不会自动回收,要么由程序员手动释放如free,要么等待整个程序结束后,由操作系统回收。3、静态区存放全局变量和静态变量,程序结束后由系统释放。4、代码区code area(代码区):存放函数二进制代码。存放 CPU 执行的机器指令。通常代码区是可共享的(即另外的执行程序可以调用它),使其可共原创 2021-02-02 11:54:10 · 321 阅读 · 0 评论 -
C++基础(一)
考研结束,发现c++忘了很多,甚至想不起来怎么定义一个类,抽空重新看一遍,做一些记录输入输出cin、cout:cout<<"asd"<<endl;//输出cin>>a;//从键盘输出到a,注意无需格式说明符命名空间namespace:使用using std::cout;//方法一using std::endl;//或者using namespace std;//方法二//或者std::cout<<"asd"<<std::en原创 2021-01-31 16:49:52 · 229 阅读 · 0 评论 -
C++使用template模板类,h和cpp分离,编译能通过但是无法运行----报错:无法解析的外部符号
先贴上报错 :错误 LNK2019 无法解析的外部符号 “public: __cdecl Person<class std::basic_string<char,struct std::char_traits,class std::allocator >,int>::Person<class std::basic_string<char,struct std::char_traits,class std::allocator >,int>(class std原创 2021-01-30 12:18:39 · 1004 阅读 · 2 评论 -
STL学习小计(一)——template模板
一、模板1.1 模板的定义template<class T>int MyAdd(T a, T b)//模板函数{ return a + b;}int MyAdd(int a,char b)//普通函数{ return a + b;}注意:模板函数需要声明template,其中class可以替换为template。模板函数与普通函数的区别:1、模板函数与普通函数同时出现时,编译器优先调用普通函数。** 可以使用MyAdd<>()强制调用模板原创 2021-01-28 20:17:46 · 296 阅读 · 1 评论 -
网络编程中,recv/send、write/read函数各自的参数,返回值,区别
对于网络编程这一块,面试必考,但……真正工作不见得接触到几次,于是我又忘了,今天整理一下发送和接受时候的几个函数1.recv函数原型:int recv( _In_ SOCKET s, _Out_ char *buf, _In_ int len, _In_ int flags);参数:In SOCKET s:就是Socket本身,这没什么好说的,需要注意的是server_socket与cl...原创 2020-02-26 18:11:28 · 2150 阅读 · 0 评论 -
typedef和#define的用法与区别
这里是原文https://www.cnblogs.com/kerwinshaw/archive/2009/02/02/1382428.html最近又在看数据结构了,然后发现一个事情typedef int ElemType;typedef struct { ElemType i; int size; int length; }List;上面是网上看到的一个线性...原创 2019-10-05 10:23:15 · 486 阅读 · 0 评论 -
C\C++知识点记录(不断更新)
1.while (a && b) 中 ab的顺序问题ab为某个变量时候没有太大影响,但ab若为某表达式时则会被执行,易出错2.结构体的内存地址都是连在一起的,定义字符串时候应该留有足够的空间来存放每个字符串的结束标志\03.简单的博弈取球问题,确保对面起手时剩余球数为m+1的倍数...原创 2019-05-08 00:38:05 · 97 阅读 · 0 评论 -
Socket网络聊天室源码和学习中遇到的一些坑
这短时间在写C的TCP通信,碰到的坑总结一下一个socket的网络聊天室,文末贴了源码一个socket的网络聊天室,文末贴了源码Xcode使用的C++标准中也有bind函数,在using namespace std;之后会调用C++的bind而不是socket.h。即:命名空间不要一刀切,宁愿多写字;生成socketaddr_in时,同步使用memset清空内容。memset(&...原创 2019-04-06 17:52:52 · 456 阅读 · 0 评论