c++面试
2017-9-6 C++
基础:
进程与线程的区别
写一个宏返回最小值
双向链表删除某个节点,插入节点
单链表反转
字符串反转
String构造类、操作符=重载
字符串循环右移
exe的文件头结构
虚构函数可以直接调用吗
构造函数初始化列表异常捕获
Makefile怎么编译一个文件
dll信息在exe头文件哪里
gdb调试bt有什么作用
算法:
牛牛判断牛几算法
int grad(int *arr, int len)
{
for (int i = 0; i < len; i++)
{
for (int j = 0; j < len; j++)
{
for (int k = 0; k < len; k++)
{
if (i !=j && i !=k && k != j)
{
if ((arr[i] + arr[j] + arr[k]) % 10 == 0)
{
int sum = 0;
for (int l = 0; l < len; l++)
{
sum += arr[l];
}
return (sum - arr[i] - arr[j] - arr[k]) % 10;
}
}
}
}
}
return -1;
}
k个任务,每个任务有开始时间和结束时间,求24小时内最大执行任务数
斗地主随机洗牌算法
Fisher–Yates shuffle 洗牌算法
void shuffle(int *arr, int len)
{
for (int i = len - 1; i >= 0; i--)
{
int randomIndex = rand() % (i + 1);
int itemIndex = arr[randomIndex];
arr[randomIndex] = arr[i];
arr[i] = itemIndex;
}
}
使用:
多线程无锁编程:
http://blog.csdn.net/zzulp/article/details/6259866
send与write区别:
在功能上,read/write是recv/send的子集。read/wirte是更通用的文件描述符操作,而recv/send在socket领域则更“专业”一些。
当recv/send的flag参数设置为0时,则和read/write是一样的。
如果有如下几种需求,则read/write无法满足,必须使用recv/send:
- 为接收和发送进行一些选项设置
- 从多个客户端中接收报文
- 发送带外数据(out-of-band data)
标签: c++