
c++
文章平均质量分 75
wfs1874
代码的世界应该是快乐的。
展开
-
c++ :cin、 cin.getline() 、 getline() 的用法区别
主要内容:cin用法cin.getline()用法getline()用法注意问题1. cin>>用法1:输入一个数字或字符#include using namespace std;main (){int a,b;cin>>a>>b;cout<<a+b<<endl;}用法2:接收一个字符串,遇“空格”、“T...原创 2018-11-06 19:25:55 · 339 阅读 · 0 评论 -
c++学习---静态变量&友元
静态与友元封装性:对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作与访问。将方法暴露出来,让方法来控制对这些成员变量进行安全的访问与操作。 使用普通函数计算圆环面积#include <iostream>using namespace std;class Circle{ public: Circ...原创 2018-12-04 09:47:22 · 330 阅读 · 0 评论 -
C++学习:组合 & 继承
组合 & 继承代码重用可以通过创建新类来复用代码,而不必重头开始编写。可以使用别人已经开发并调试好的类。类的重用在新类中使用其他类的对象。即新类由很多种类的对象组成,这种方法成为组合。在现有类的基础上创建新类,在其中添加新代码,这种方法称为继承。类的组合:在定义一个类时,若类的数据成员或者成员函数的参数是另一个类的对象。使用两个对象之间是 has-a...原创 2018-12-06 17:20:15 · 372 阅读 · 0 评论 -
c++中指针和引用的区别
指针和引用的定义和性质区别:指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质是同一个东西,只不过是原变量的一个别名而已。如:int a = 1; int *p = &a;int a = 1; int &b = a;上面定义了一个整形变量和一个指针变量p,该指针变量指向a的存储单元,即p的值是a存储单元的地址。而下...原创 2018-12-24 15:47:11 · 88 阅读 · 0 评论 -
select、poll、epoll 之间的区别
select ==》 时间复杂度O(n)它仅仅知道了,有I/O事件发生了,却并不知道是哪几个流(可能有一个或多个),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。poll ==》 时间复杂度 O(n)poll本质上和select没有区别,它将用户传入的数组拷贝到内核空间,然后...转载 2019-02-27 15:24:44 · 151 阅读 · 0 评论 -
linux:gcc / g++ 编译thread程序 error:collect2: error: ld returned 1 exit status
最近在编译c++11 标准的 thread 程序时遇到:Undefined reference to 错误:这类错误是在链接过程中出现的,可能有两种原因∶一是使用者自己定义的函数或者全局变量所在源代码文件,没有被编译、链接,或者干脆还没有定义,这 需要使用者根据实际情况修改源程序,给出全局变量或者函数的定义体;二是未定义的符号是一个标准的库函数,在源程序中使用了该库函数,而链接过程中还...原创 2019-03-01 13:39:21 · 1869 阅读 · 0 评论 -
C++: reinterpret_cast、dynamic_cast、static_cast的使用及注意事项
转发:https://blog.youkuaiyun.com/tiandao2009/article/details/79842006标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast 和const_cast。在C++中,使用数据类型转换时,该怎样选用合适的数据类型转换方式很重要,下面分别对这几种转换方法做一说明:1. static_cas...转载 2019-02-25 21:37:15 · 235 阅读 · 0 评论 -
Linux select函数详解
在Linux中,我们可以使用select函数实现I/O端口的复用,传递给select函数的参数会告诉内核:我们所关心的文件描述符对每个描述符,我们所关心的状态。(我们是要从一个文件描述符中读或者写,还是关注一个描述符中是否出现异常)我们要等待多长时间。(我们可以等待无限长的时间,等待固定的一段时间,或者根本就不等待)从select函数返回后,内核告诉我们以下信息:1.对我们的要...转载 2019-02-26 10:59:35 · 351 阅读 · 0 评论 -
Linux C++ socket编程实例
文章目录socket基本过程基本的局域网聊天局域网TCP服务器端局域网TCP客户端客户端服务端双向异步聊天异步聊天服务器端代码异步聊天客户端代码局域网内服务端和有限个客户端聊天局域网TCP 2人聊天服务器端代码局域网TCP 2人聊天客户端代码完美异步聊天服务端和客户端无限个客户聊天的服务器端代码无限个客户端连接的客户端代码服务端:服务器端初始化socket,然后与端口绑定,对端口进行监听,调...转载 2019-03-24 22:10:16 · 7453 阅读 · 5 评论 -
c++头文件加.h不加.h & 命名空间
自己经常问自己很多看似低级问题,但是无法给出答案,之前没注意到或者没有深入探索。关于命名空间问题:学习过C,然后再学c++的人可能会这么问,我#include之后,不就是把头文件拉进来了吗,而cin cout等函数不就是iostream.h里面的函数吗,我使用cin cout时,编译器为什么会说 “Error 未定义标示符”呢?我们都知道只需要每次加上这句话:using namespac...转载 2019-03-29 11:22:16 · 1823 阅读 · 0 评论 -
多继承 & 虚基类 & 多态性 & 虚函数 c++学习
多继承C++中有两种继承:单一继承和多重继承。(java 只有单继承)对于单继承,派生类只能有一个基类;对于多继承,派生类可以有多个基类。定义一个类从多个基类派生的一般形式: class 类名1:访问控制 类名2, 访问控制 类名3, ... , 访问控制 类名n { ...//定义派生类自己的成员 };多继承可以视为单继承的扩展。构造函数派生类名::派生类...原创 2018-12-12 23:22:46 · 509 阅读 · 0 评论 -
c++基础学习:析构函数&拷贝构造函数
拷贝构造函数与析构函数字符串函数当构造函数参数是数组名时,需要用strcpy()函数给数组成员数组赋值。string类是c++提供的字符串类,其主要功能是对字符串进行操作。string类定义的变量称为字符串对象,该对象可以直接用字符串常量赋值,也可调用string类中定义的成员函数。常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值不能被更新。c++ 中引入const...原创 2018-12-03 14:59:58 · 486 阅读 · 0 评论 -
c++编程学习:多态性&重载
多态性与重载多态性是面向对象程序设计的重要特性之一。多态是会一个名字有很多种语义,或一个相同界面有很多多种实现;或是指发出同样的消息被不同类型的对象接收而导致完全不同的行为,即对象根据所接收到的消息做出相应的操作。消息主要是指对象成员函数的调用,不同的行为指不同的实现。多态的实现:函数重载运算符重载虚函数函数重载多态性的一种形式,它是指允许在相同的作用域内,相同的...原创 2018-12-05 11:28:40 · 693 阅读 · 0 评论 -
c++ 中的 string 类
c++ 中string类的学习1. string类的构造函数构造函数描述string(const char *s)将string对象初始化为s指向的NBTS(表示以空字符结束的字符串)string(size_type n,char c)创建一个大小为n的string对象,并且每个元素都被初始化为字符cstring(const string & ...原创 2018-11-07 12:02:38 · 283 阅读 · 0 评论 -
C++学习之旅
C++ &amp; 算法学习之旅 从今天起,本人开始推出c++学习之旅以及基于c++语言的算法学习之旅,大家可以叫我顺子, 我会坚持更博,想和我一起努力学习编程和算法的朋友们可以一同交流学习。...原创 2018-11-05 20:05:13 · 262 阅读 · 0 评论 -
LeetCode 17. Letter Combinations of a Phone Number
LeetCode 17. Letter Combinations of a Phone Number最近在做LeetCode中的题,第一次更C++和算法系列文章就拿这道题开张吧。Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number...原创 2018-11-05 21:58:03 · 107 阅读 · 0 评论 -
c++ 中min和max 函数
包含在c++标准库中头文件中,在头文件<windows.h>中定义了min,max的宏,若在包含的同时包含<windows.h>会导致函数无法使用。<windows.h>提供了_cpp_min等函数来代替min函数的功能。C++11标准:中min函数的原型default(1)template const T& min (const T&...转载 2018-11-08 22:58:29 · 28399 阅读 · 0 评论 -
C++中 queue 、 deque、priority_queue详解
最近看到一道题用到了队列,在这里就具体的分析一下C++中的这三种队列的区别queue用法:#include <iostream>#include <queue>using namespace std; int main(){ queue<int> myQueue; cout << myQueue.empty() <...原创 2018-11-15 02:07:47 · 1666 阅读 · 0 评论 -
乱序保序输出
thinking:(1)每次选择输出的数字是当前序列中最小的,记该数字下标为 index,数字为a(2)检查index 之后的最小数为b(3)如果index之前有小于b且大于a的数字出现,说明这些数字是乱序的数字,要和a一行保序输出此处用 优先队列会更有优势!!!int output_in_order(vector<int> &unordered_sequen...原创 2018-11-15 02:42:33 · 319 阅读 · 0 评论 -
NULL和nullptr的区别
NULL是0nullptr是空指针void看例子:#include <iostream>void go(int num){ std::cout << "go num" << std::endl;}void go(char *p){ std::cout << "go p" << std::en原创 2018-11-16 22:32:45 · 301 阅读 · 0 评论 -
变量交换 && c++中的swap(交换函数)
交换两个变量的值很简单。比如 int a = 1; b = 2; 交换a b的值这个很简单 很容易想到的是找个中间变量比如 int temp = a; a = b; b = temp;不需要中间变量可不可以?当然是可以的。加减法交换两变量a = a + b;b = a - b;a = a - b ;该方法可以交换整形和浮点型数值,但在处理浮点型的时候出现精度损失,例...原创 2018-11-25 20:34:50 · 1620 阅读 · 0 评论 -
c++编程学习复习笔记(一 基础)
面向对象概述与C++输入输出使用<iostream>时,由于C++的标准库中所有标识符都被定义于一个名为std的namespace中,因此其后必须带上语句“using namespace std;”.#include <iostream>#include <iomanip>using namespace std;int main(){...原创 2018-12-03 09:57:00 · 277 阅读 · 2 评论 -
const指针&&指向const的指针
今天总结一下const的用法,重点关注const指针和指向const的指针。const指针const指针是指指针变量的值一经初始化,就不可以改变指向。定义: type * const 指针名称;声明指针const有三种方式,但含义不同;const int *pOne; //指向整形常量的指针,指向的值不能修改;int * const pTwo; //指向整形的常量指针,他不能再指...原创 2019-09-01 14:50:10 · 415 阅读 · 0 评论