
c++
cytheria43
这个作者很懒,什么都没留下…
展开
-
c++ socket发送string 、char*字符串,客户端接收到乱码
string s; if(getline(infile,s)) { send(conn,s,1024,0); sleep(1); }这样子写,得到的结果除了该字符串外还带了一串乱码(下图jpg图像地址后的一串乱码),原因是发送的长度为1024,而不是字符串实际长度改写为: string s; if(getline(infile,s)) { ...原创 2020-07-16 15:18:10 · 4420 阅读 · 2 评论 -
const 用法
const(1)const 变量b=6;const int a=b;int const a=b;两者一样,换顺序无所谓。说明a是不可修改的常量,必须初始化【a=3 error,提示:表达式必须是可修改的左值】(2)const指针int b=10;①const int *a=&b;int const *a=&b;都是常量指针,可以看成const (*...原创 2019-05-17 18:59:10 · 442 阅读 · 0 评论 -
【编程题】二分查找
void BinarySearch(int a[],int n,int key) { int left = 0, right = n-1; //初始化左右 while (left<=right) { int mid = (left + right) / 2; //二分查找的下标 if (a[mid] > key)right = mid-1; else if (a...原创 2019-05-13 15:16:00 · 332 阅读 · 0 评论 -
素数判断/以及素数相关编程题
素数判断bool is_prime(int n) { if (n < 2)return false; if (n == 2 || n == 3)return true; if ((n + 1) % 6 != 0 && (n - 1) % 6 != 0) return false;//5以后的素数肯定在6的倍数旁边, ...原创 2019-05-17 11:18:17 · 643 阅读 · 0 评论 -
经典排序算法
冒泡排序 void BubbleSort(int a[], int n) { for (int i = 0; i <n; i++) { for (int j = 0; j < n-i-1 ; j++) { if (a[j] > a[j+1]) swap(a[j], a[j+1]); } }}插入排序void InsertSort(...原创 2019-05-11 23:55:08 · 25152 阅读 · 0 评论 -
智能指针总结
智能指针的作用:用于管理对象的生命周期智能指针是一个栈对象,用于管理对象的堆内存。使用它的get()函数才能返回它的裸指针。auto_ptr 用于管理单个对象的堆内存【容错率太低】最好不要使用赋值运算符=,会让出访问所有权,致使自己访问出错 使用release方法会让出所有权后不能自动调用析构函数,致使不会自动释放对象,造成内存泄漏 因为不能使用赋值运算符所以不能用于vect...原创 2019-05-21 14:13:58 · 210 阅读 · 0 评论 -
c++面试常见题·Part 3 TCP/IP&多线程编程&设计模式&Linux基操等
1.TCP/IP 四层模型:(图来源于网络)IP层(网络层)主要协议:ARP(地址解析协议):负责将一个已知的ip地址解析成MAC地址,以便在交换机上进行通信、ICMP(Internet控制消息协议):返回错误信息DHCP(动态主机配置协议):由DHCP服务器动态分配ip和RARP(反向地址转换协议)2.TCP/UDP区别以及拥塞控制TCP(Transmission...原创 2019-05-07 18:13:32 · 801 阅读 · 0 评论 -
c++面试常见题·Part 2 数据结构和STL
常用数据结构数组 :分配空间固定,地址连续,随机取一个数时间复杂度为O(1)链表(单链表,双链表) 适合快速增删栈(后进先出)队列(FIFO先进先出)树:二叉树遍历(递归方式和非递归方式 )红黑树 B树图 主要考察路径查找STL与底层实现:顺序容器:vector 数组list 双向链表deque 双端队列中央控制器和多个缓冲区 适合首尾进行存取操作...原创 2019-05-06 14:43:30 · 190 阅读 · 0 评论 -
判断单链表是否有环,环入点,环长,单链表长度
//判断是否有环class Solution {public: bool hasCycle(ListNode *head) { if(head==NULL||head->next==NULL)return false; ListNode *fast=head,*slow=head; while(fast&&fast...原创 2019-05-08 11:56:06 · 600 阅读 · 0 评论 -
c++面试常见题·Part 1 基础
new&delete、malloc&free都能动态申请内存和释放内存malloc&free是标准库函数,new&delete是运算符,对于非内部数据类型的对象而言,只有new,delete能自动调用对象的构造函数和析构函数指针和引用指针指向变量的地址,引用是变量的别名,引用不占内存单元,指针本身占4字节引用必须初始化,并在初始化后不能修改,而指...原创 2019-05-04 19:26:30 · 217 阅读 · 0 评论