C++面试
赵小咖
每天努力一点点
展开
-
前置++和后置++的区别
++a表示取a的地址,增加它的内容,然后把值放在寄存器中;a++表示取a的地址,把它的值装入寄存器,然后增加内存中的a的值;前置++和后置++,有4点不同:返回类型不同 形参不同 代码不同 效率不同1、返回类型前置++的返回类型是&,后置++的返回类型const值。这意味着,前置++返回的是左值(可以被修改,也就是说可以对它进行前置++、后置++、赋值等操作),后置...原创 2018-07-21 22:25:21 · 6618 阅读 · 0 评论 -
C++之常用排序算法
#include<iostream>#include<vector>using namespace std;//冒泡排序void Bubble_Sort(vector<int> &vec){ int temp = 0; for (int i = 0; i < vec.size()-1; i++) { for (int j =...原创 2019-04-16 17:26:00 · 227 阅读 · 0 评论 -
C++之STL仿函数、内存池、Lambda表达式
C++之STL仿函数仿函数内存池Lambda表达式仿函数要将某种“操作”当做算法的参数,唯一办法就是先将该“操作”(可能拥有数条以上的指令)设计为一个函数,再将函数指针当做算法的一个参数;或是将该“操作”设计为一个所谓的仿函数(就语言层面来说是个class),再以该仿函数产生一个对象,并以此对象作为算法的一个参数。根据以上陈述,既然函数指针可以达到“将整组操作当做算法的参数”,那又何必有所谓...原创 2019-04-16 17:21:00 · 449 阅读 · 0 评论 -
C++之STL空间置配器
STL之空间置配器空间配置器(SGI版)二级空间配置器的逻辑步骤:空间配置器的其他问题空间配置器(SGI版)STL里面的空间配置主要分为两级,一级空间配置器(__malloc_alloc_template)和二级空间配置器(__default_alloc_template)。在STL中默认如果要分配的内存大于128个字节的话就是大块内存,调用一级空间配置器直接向系统申请,如果小于等于128个字...原创 2019-04-16 17:18:10 · 330 阅读 · 2 评论 -
C++之STL常用函数及原理
C++之STL常用函数及原理lower_boundupper_boundbinary_serachrandom_shufflepartial_sortpartial_sort_copysortequal_rangeinplace_range(应用于有序序列)nth_elementlower_bound作用:在有序区间上寻找值为value的位置;Interator lower_bound(In...原创 2019-04-16 17:16:19 · 1045 阅读 · 0 评论 -
C++字符和数字、字符大小写之间的转换
#include<iostream>int main(){ //其实就是对ASCii表的操作 string s; char a = 'a'; int b = a - '0'; //字符转成数字 int c = (int)a; //就是ASC码十进制值,不加(int)也会隐式转 char ch=b+'0'; /...原创 2018-07-21 23:30:02 · 4705 阅读 · 0 评论 -
c++ list, vector, map, set 区别与用法比较
List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]。Vector对于随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾部插入速度很快。List对于随机访问速度慢得多,因为可能要遍历整个链表才能做到,但是对于插入就快的多了,不需要拷贝和移动数据,只需要改变...转载 2018-07-21 23:05:49 · 288 阅读 · 0 评论 -
C++值传递、引用传递和传指针的区别
传值传递的是是实参的拷贝,实参不会被修改;#include<iostream>void swap(int a, int b){ int temp = a; a = b; b = temp;}int main(){ int a = 5, b = 10; swap(a, b); std::cout << "a = " << a <...原创 2018-07-21 22:53:50 · 324 阅读 · 0 评论 -
C++中指针和引言的区别
指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用的实质上是原变量的一个别名。如:int a=1;int *p=&a;int a=1;int &b=a;上面定义了一个整形变量和一个指针变量p,该指针变量指向a的存储单元,即p的值是a存储单元的地址。而下面2句定义了一个整形变量a和这个整形a的...原创 2018-07-21 22:41:53 · 211 阅读 · 0 评论 -
Liunx之网络编程
Liunx网络编程进程线程TCP/IP协议簇并发编程操作系统进程进程:资源分配的最小单元,操作系统执行的最小单位;Linux对进程采用了一种层次系统,每个进程都依赖于一个父进程。内核启动init程序作为第一个进程,该进程负责进一步的系统初始化操作,并显示登录提示符或图形登录界面(现在使用比较广泛)。因此init是进程树的根,所有进程都直接或间接起源自该进程。fork()函数可以创建当前进程...原创 2019-04-16 17:31:10 · 692 阅读 · 0 评论