文章分类 -  C++

摘要:题目1:子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码 代码1: 1 #include <iostream> 2 #include <thread> 3 #include <mutex> 4 using 阅读全文
posted @ 2019-07-11 10:25 unique_ptr 阅读(514) 评论(0) 推荐(0) 编辑
摘要:函数原型: 1 2 void *memcpy( void *dest, const void *src, size_t count ); void *memmove( void* dest, const void* src, size_t count ); 1 2 void *memcpy( voi 阅读全文
posted @ 2019-06-09 11:00 unique_ptr 阅读(523) 评论(0) 推荐(0) 编辑
摘要://求字符串长度的函数 int my_strlen(const char* pStr) { assert(pStr != NULL); int length = 0; while (*pStr++ != '\0') { length++; } return length; } //字符串拷贝函数 char* my_strcpy(... 阅读全文
posted @ 2019-06-09 10:58 unique_ptr 阅读(544) 评论(0) 推荐(0) 编辑
摘要:简介 本教程将以C++最基本的文件I/O(输出/输出)开始。此后,我将从更深入的方面,为你展示一些技巧,并分析给出一些有用的函数。 你需要对C++有一个较好的理解,否则这个教程于你而言将是陌生而毫无用处。 你的第一个程序 首先我将给出一段代码,接着再逐行进行解释。我们的第一个程序将建立一个文件,并写 阅读全文
posted @ 2019-06-06 15:32 unique_ptr 阅读(1404) 评论(0) 推荐(0) 编辑
摘要:一、需求         Web Server通常有个配置,最大工作线程数,后端服务一般也有个配置,工作线程池的线程数量,这个线程数的配置不同的业务架构师有不同的经验值,有些业务设置为CPU核数的2倍,有些业务设置为CPU核数的8倍,有些业务设置为CPU核数的 阅读全文
posted @ 2019-06-05 14:32 unique_ptr 阅读(515) 评论(0) 推荐(0) 编辑
摘要:PING(Packet InterNet Groper)中文名为因特网包探索器,是用来查看网络上另一个主机系统的网络连接是否正常的一个工具。ping命令的工作原理是:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把回复报文传回给发送者,这有点象潜水艇声纳系统中使用的发声装置。 阅读全文
posted @ 2019-06-05 14:27 unique_ptr 阅读(1895) 评论(0) 推荐(0) 编辑
摘要:有限状态机(finite state machine)简称FSM,表示有限个状态及在这些状态之间的转移和动作等行为的数学模型,在计算机领域有着广泛的应用。FSM是一种逻辑单元内部的一种高效编程方法,在服务器编程中,服务器可以根据不同状态或者消息类型进行相应的处理逻辑,使得程序逻辑清晰易懂。 那有限状 阅读全文
posted @ 2019-06-05 13:56 unique_ptr 阅读(1497) 评论(0) 推荐(0) 编辑
摘要:我们先从简单的例子入手:求ab mod c = 几。 算法1.首先直接地来设计这个算法: int ans = 1; for(int i = 1;i<=b;i++) { ans = ans * a; } ans = ans % c; 这个算法的时间复杂度体现在for循环中,为O(b).这个算法存在着明 阅读全文
posted @ 2019-06-02 17:09 unique_ptr 阅读(1673) 评论(0) 推荐(0) 编辑
摘要:1. 引入inline关键字的原因 在c/c++中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数。 栈空间就是指放置程序的局部数据(也就是函数内数据)的内存空间。 在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足而导致程序 阅读全文
posted @ 2019-06-02 16:56 unique_ptr 阅读(595) 评论(0) 推荐(0) 编辑
摘要:在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。 1、静态建立类对象:是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数 形成一个栈对象。使用这种方法,直接调用类 阅读全文
posted @ 2019-05-30 20:01 unique_ptr 阅读(1534) 评论(0) 推荐(1) 编辑
摘要:一般来说,智能指针的实现需要以下步骤: 1.一个模板指针T* ptr,指向实际的对象。 2.一个引用次数(必须new出来的,不然会多个shared_ptr里面会有不同的引用次数而导致多次delete)。 3.重载operator*和operator->,使得能像指针一样使用shared_ptr。 4 阅读全文
posted @ 2019-05-19 22:46 unique_ptr 阅读(705) 评论(0) 推荐(0) 编辑
摘要:1、单例模式:单例模式:用来创建独一无二的,只能够有一个实例的对象。 单例模式的结构是设计模式中最简单的,但是想要完全实现一个线程安全的单例模式还是有很多陷阱的。 2、应用场景:共享数据或者共享访问点; 创建一个对象需要消耗的资源过多,如访问IO和数据库等资源; 需要定义大量的静态常量和静态方法(工 阅读全文
posted @ 2019-05-19 22:34 unique_ptr 阅读(2141) 评论(0) 推荐(0) 编辑
摘要:C++面试或者笔试的时候经常遇到这样一个问题,就是自己实现一个string类。 本人总结自己的面试经验以及参考网上各位网友的总结,总得来说常见的主要实现的包括以下几个方面(如有不如,欢迎补充) 常见:普通的构造函数、拷贝构造函数、析构函数、字符串的链接即‘+’号运算符重载、字符串赋值即‘=’号运算符 阅读全文
posted @ 2019-05-19 22:27 unique_ptr 阅读(584) 评论(0) 推荐(0) 编辑
摘要:       先考虑一种情况,对一个已知对象进行拷贝,编译系统会自动调用一种构造函数——拷贝构造函数,如果用户未定义拷贝构造函数,则会调用默认拷贝构造函数。        先看一个例子,有一个学生类,数据成员时学生的人数 阅读全文
posted @ 2019-05-19 22:16 unique_ptr 阅读(3053) 评论(0) 推荐(0) 编辑
摘要:emplace操作是C++11新特性,新引入的的三个成员emlace_front、empace 和 emplace_back,这些操作构造而不是拷贝元素到容器中,这些操作分别对应push_front、insert 和push_back,允许我们将元素放在容器头部、一个指定的位置和容器尾部。两者的区别 阅读全文
posted @ 2019-05-19 21:57 unique_ptr 阅读(1084) 评论(0) 推荐(0) 编辑
摘要:一.传统枚举类型的缺点 1.作用域冲突 传统C++中枚举元素被暴漏在外层作用域中,这样若是同一作用域下有两个不同的枚举类型,但含有相同的枚举元素,就会产生冲突。enum EnumOne{ A = 1, B = 2}; enum EnumTwo{ A = 1, C = 2}; error C2365: 阅读全文
posted @ 2019-05-19 21:45 unique_ptr 阅读(433) 评论(0) 推荐(0) 编辑
摘要:版权声明:本文为灿哥哥http://blog.csdn.net/caoshangpa原创文章,转载请标明出处。 https://blog.csdn.net/caoshangpa/article/details/79392878        enable_sh 阅读全文
posted @ 2019-05-19 21:43 unique_ptr 阅读(673) 评论(0) 推荐(0) 编辑
摘要:版权声明:本文为灿哥哥http://blog.csdn.net/caoshangpa原创文章,转载请标明出处。 https://blog.csdn.net/caoshangpa/article/details/79173351 一.std::bind bind是这样一种机制,它可以将参数绑定于可调用 阅读全文
posted @ 2019-05-19 21:33 unique_ptr 阅读(891) 评论(0) 推荐(0) 编辑
摘要:C++ 11 Lambda表达式 C++11的一大亮点就是引入了Lambda表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。对于C++这门语言来说来说,“Lambda表达式”或“匿名函数”这些概念听起来好像很深奥,但很多高级语言在很早以前就已经提供了Lambda表达式的功能,如C ,P 阅读全文
posted @ 2019-05-19 21:29 unique_ptr 阅读(1067) 评论(0) 推荐(0) 编辑
摘要:熟悉C++98/03的对于for循环就再了解不过了,如果我们要遍历一个数组,那么在C++98/03中的实现方式:int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (int i = 0; i < 10; i++) cout << 阅读全文
posted @ 2019-05-19 21:25 unique_ptr 阅读(15886) 评论(1) 推荐(0) 编辑