总结出一个规律,腾讯的面试题跟 数据分析处理 的相关的,基本上都会用到hash算法
把整个空间映射到内存,一个整数一个bit,总共需要2^32 / 2^3 = 512M内存。 |
|
template<class _Pr, class _Ty1, class _Ty2> inline
bool __CLRCALL_OR_CDECL _Debug_lt_pred(_Pr _Pred, const _Ty1& _Left, const _Ty2& _Right,
const wchar_t *_Where, unsigned int _Line)
{ // test if _Pred(_Left, _Right) and _Pred is strict weak ordering
if (!_Pred(_Left, _Right))
return (false);
else if (_Pred(_Right, _Left))
_DEBUG_ERROR2("invalid operator<", _Where, _Line);
return (true);}
因此,相等的时候就不行
在调试程序时,常常希望输出一些所需的信息,而在调试完成后不再输出这些信息。可以在源程序中插入以下的条件编译段:
#ifdef DEBUG
print ("device_open(%p)\n", file);
#endif
如果在它的前面有以下命令行:
#define DEBUG
则在程序运行时输出file指针的值,以便调试分析。调试完成后只需将这个define命令行删除即可。有人可能觉得不用条件编译也可达此目的,即在调试时加一批printf语句,调试后一一将printf语句删除去。的确,这是可以的。但是,当调试时加的printf语句比较多时,修改的工作量是很大的。用条件编译,则不必一一删改printf语句,只需删除前面的一条“#define DEBUG”命令即可,这时所有的用DEBUG作标识符的条件编译段都使其中的printf语句不起作用,即起统一控制的作用,如同一个“开关”一样。
1>dxut.obj : error LNK2019: 无法解析的外部符号
__imp__ExtractIconW@12,该符号在函数 "long __cdecl DXUTCreateWindow(wchar_t const *,struct HINSTANCE__ *,struct HICON__ *,struct HMENU__ *,int,int)" (
?DXUTCreateWindow@@YAJPB_WPAUHINSTANCE__@@PAUHICON__@@PAUHMENU__@@HH@Z) 中被引用
solution:
add
shell32.lib
问题描述:使用Visual Studio 2010,DX10 SDK打开旧版本(DX9)的项目,编译运行时候提示为
fatal error LNK1104: 无法打开文件“dxerr9.lib”
================================================
问题原因:DX10中将dxerr9.lib变成了dxerr.lib(显然DX8中这个文件叫dxerr8.lib)
解决方法:
在属性管理器中,右击解决方案->属性->连接器->输入->附加依赖项,在里面找到dxerr9.lib,改成dxerr.lib
问题解决。
w是其次坐标,用于表示verctor代表一个点还是一个向量。
w=1代表vector是个点,w=0代表vector是个向量,平移向量后,向量是没有变化的。
也就是w决定了一个变换中,平移部分是否有效。w=0就是只让属于线性变换的变换有效。
总共有3000只香蕉,有一只骆驼每一次只能带1000只香蕉,
每1公里吃1只香蕉,没有香蕉吃它是不肯走的,A-B 点距离1000公里,
如果这个骆驼要从A点到B点有什么办法可以让更多的香蕉剩下来?
如何做到?如何最有效率的运最多的香蕉到B点?
主要解决思路:
①骆驼先载上1000个香蕉 走到某一处,然后放一些香蕉在路上某处。
再带上一些香蕉 边走边吃返回到起点
②重复上述过程,直到还剩余香蕉全部都搬运到路上某处.
③最后重复①②过程
现在的问题就出现了 走到某处? 到底走到哪里呢?
一开始,有3000个香蕉 那么在通往终点的方向上的同一段路 要走3次
该段路程反方向要走2次
如果只剩了2000个香蕉 那么在通往终点的方向上的同一段路 要走2次
该段路程反方向要走1次
很显然 可以用剩余香蕉的数量来分隔。
从3000个香蕉到刚好剩余2000个香蕉
消耗了1000个香蕉(骆驼行走路程为1000m)
在同一段路要走3+2=5 次
那么这段路只有 1000/5=200m 此时走过200m 剩余1000个香蕉
从2000个香蕉到1000个
又消耗了1000个香蕉(骆驼行走路程为1000m)
根据上述推论 在在同一段路要走1+2=3 次
那么又走过1000/3=333.3m
因为香蕉的浪费全部都是浪费在往返的路程中,所以只要往返的路程最短就能运送最多的香蕉。
1>------ 已启动生成: 项目: WinTest, 配置: Debug Win32 ------
1>生成启动时间为 2011/10/5 12:35:59。
1>InitializeBuildStatus:
1> 正在对“Debug\WinTest.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1> 所有输出均为最新。
1>ResourceCompile:
1> 所有输出均为最新。
1>ManifestResourceCompile:
1> 所有输出均为最新。
1>d3dUtility.obj : error LNK2005: "long __stdcall d3d::WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (
?WndProc@d3d@@YGJPAUHWND__@@IIJ@Z) 已经在 cfont.obj 中定义
1>cfont.obj : error LNK2019: 无法解析的外部符号 "bool __cdecl d3d::InitD3D(struct HINSTANCE__ *,int,int,bool,enum _D3DDEVTYPE,struct IDirect3DDevice9 * *)" (
?InitD3D@d3d@@YA_NPAUHINSTANCE__@@HH_NW4_D3DDEVTYPE@@PAPAUIDirect3DDevice9@@@Z),该符号在函数
_WinMain@16 中被引用
1>dxutil.obj : error LNK2019: 无法解析的外部符号
__imp__RegCloseKey@4,该符号在函数 "long __cdecl DXUtil_GetDXSDKMediaPathCch(wchar_t *,int)" (
?DXUtil_GetDXSDKMediaPathCch@@YAJPA_WH@Z) 中被引用
1>dxutil.obj : error LNK2019: 无法解析的外部符号
__imp__RegQueryValueExW@24,该符号在函数 "long __cdecl DXUtil_GetDXSDKMediaPathCch(wchar_t *,int)" (
?DXUtil_GetDXSDKMediaPathCch@@YAJPA_WH@Z) 中被引用
1>dxutil.obj : error LNK2019: 无法解析的外部符号
__imp__RegOpenKeyExW@20,该符号在函数 "long __cdecl DXUtil_GetDXSDKMediaPathCch(wchar_t *,int)" (
?DXUtil_GetDXSDKMediaPathCch@@YAJPA_WH@Z) 中被引用
1>dxutil.obj : error LNK2019: 无法解析的外部符号
__imp__RegSetValueExW@24,该符号在函数 "long __cdecl DXUtil_WriteStringRegKey(struct HKEY__ *,wchar_t *,wchar_t *)" (
?DXUtil_WriteStringRegKey@@YAJPAUHKEY__@@PA_W1@Z) 中被引用
1>E:\Visual Studio 2010\Projects\WinTest\Debug\WinTest.exe : fatal error LNK1120: 5 个无法解析的外部命令
1>
1>生成失败。
1>
1>已用时间 00:00:01.19
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
solution:未包含AdvAPI32.lib
1>d3dUtility.obj : error LNK2005: "long __stdcall d3d::WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (
?WndProc@d3d@@YGJPAUHWND__@@IIJ@Z) 已经在 cfont.obj 中定义
1>cfont.obj : error LNK2019: 无法解析的外部符号 "bool __cdecl d3d::InitD3D(struct HINSTANCE__ *,int,int,bool,enum _D3DDEVTYPE,struct IDirect3DDevice9 * *)" (
?InitD3D@d3d@@YA_NPAUHINSTANCE__@@HH_NW4_D3DDEVTYPE@@PAPAUIDirect3DDevice9@@@Z),该符号在函数
_WinMain@16 中被引用
这两个错误有点莫名其妙:将问题函数声明重新敲一遍...不能复制的
1. 若某链表最常用的操作是在最后一个结点之后插入一个结点和删除最后一个结点,则采用()存储方式最节省时间?
A、单链表 B、带头结点的非循环双链表 C、带头节点的双循环链表 D、循环链表2. 如果需要对磁盘上的1000W条记录构建索引,你认为下面哪种数据结构来存储索引最合适?()
A、Hash Table B、AVL-Tree C、B-Tree D、List解析:
AVL-Tree 检索速度是很快的,这是因为二分检索是树结构的一个本质特性。但是最大的缺点是他的存储利用率太低。每个树节点仅仅有一个数据项,有2个指针和每个数据项的控制信息。
Hash Table当溢出发生时可以分裂成2个节点。目录以2的指数倍增长,只要一个节点溢出而且目录已经达到了指定的最大目录深度,他就会加倍。一个问题就是任何一个节点都能引起目录分裂,因此如果Hash函数不是很随机的话,目录可能增长的很大。
List优点是存取方便,但不便于动态维护,进行插入删除等操作时需要移动大量的数据。
B-tree是比较合适用于磁盘的数据结构,由于他是一个宽而浅的树,查找一个数需要访问很少的节点。内存利用率是比较好的,所以他用于内存数据库比较合适;搜索速度比较快(用二分查找时,只访问很少一部分节点);而且更新速度也比较快(数据移动通常只涉及到一个节点)
6、IPV6地址包含了()位
A、16 B、32 C、64 D、128