VS C+++编译预处理问题

编译平台:vs2015 update3,代码如下:
#ifdef _WIN64
1. inline uint16_t zBSF(unsigned long * Index,uint64_t x)
2. {
3. return _BitScanForward64(Index,x);
4. }
#endif
在编译目标平台选项设为x64的时候没有问题,但是设为x86的时候,第三行报错,错误信息如下:
Error C3861 '_BitScanForward64': identifier not found
我已经做了#ifdef _WIN64预处理了,指示预编译在x86下不要处理这段代码了啊,怎么感觉好像编译器不予理睬一般。这种预处理,我在其他地方用的很多,没有出现过什么问题。这个_BitScanForward64按微软说法是编译器内嵌函数,但是这又如何?指明了不要处理,为啥还处理,头痛失眠,求大神指点
不好意思,囊中空空,没有C币悬赏了啊

3个回答

你的编译器命令行怎么写的,x86方式的命令行贴出来看看。

编译命令行所有选项:
/GS /analyze- /W3 /Zc:wchar_t /ZI /Gm /Od /sdl /Fd"Debug\vc140.pdb" /Zc:inline /fp:precise /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /Oy- /MDd /Fa"Debug\" /EHsc /nologo /Fo"Debug\" /Fp"Debug\CPPTEST.pch"
链接命令行所有选项:
/OUT:"D:\VS\CPPTEST\Debug\CPPTEST.exe" /MANIFEST /NXCOMPAT /PDB:"D:\VS\CPPTEST\Debug\CPPTEST.pdb" /DYNAMICBASE "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEBUG /MACHINE:X86 /INCREMENTAL /PGD:"D:\VS\CPPTEST\Debug\CPPTEST.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Debug\CPPTEST.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /TLBID:1


unsigned char _BitScanForward(
   unsigned long * Index,
   unsigned long Mask
);
unsigned char_BitScanForward64(
   unsigned long * Index,
   unsigned __int64 Mask
);


Collapse imageParameters
[out] Index
Loaded with the bit position of the first set bit (1) found.

[in] Mask
The 32-bit or 64-bit value to search.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
求大神指导?编译预处理
为什么要进行编译预处理? 编译预处理是怎么进行的?特别想知道这是怎么样一回事!
VS2015 编译预处理问题
VS C+++编译预处理问题 微软 编译器 编译平台:vs2015 update3,代码如下: #ifdef _WIN64 inline uint16_t zBSF(unsigned long * Index,uint64_t x) { return _BitScanForward64(Index,x); //编译报错行 } #endif 在编译目标平台选项设为x64的时候没有问题,但是设为x86的时候,报错,错误信息如下: Error C3861 '_BitScanForward64': identifier not found 我已经做了#ifdef _WIN64预处理了,指示预编译在x86下不要处理这段代码了啊,怎么感觉好像编译器不予理睬一般。这种预处理,我在其他地方用的很多,没有出现过什么问题。这个_BitScanForward64按微软说法是编译器内嵌函数,但是这又如何?指明了不要处理,为啥还处理,跪求求大神指点 不好意思,囊中空空,没有C币悬赏了啊 编译命令行所有选项: /GS /analyze- /W3 /Zc:wchar_t /ZI /Gm /Od /sdl /Fd"Debug\vc140.pdb" /Zc:inline /fp:precise /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /Oy- /MDd /Fa"Debug\" /EHsc /nologo /Fo"Debug\" /Fp"Debug\CPPTEST.pch" 链接命令行所有选项: /OUT:"D:\VS\CPPTEST\Debug\CPPTEST.exe" /MANIFEST /NXCOMPAT /PDB:"D:\VS\CPPTEST\Debug\CPPTEST.pdb" /DYNAMICBASE "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEBUG /MACHINE:X86 /INCREMENTAL /PGD:"D:\VS\CPPTEST\Debug\CPPTEST.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Debug\CPPTEST.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /TLBID:1
VS C+++编译预处理问题
编译平台:vs2015 update3,代码如下: #ifdef _WIN64 1. inline uint16_t zBSF(unsigned long * Index,uint64_t x) 2. { 3. return _BitScanForward64(Index,x); 4. } #endif 在编译目标平台选项设为x64的时候没有问题,但是设为x86的时候,第三行报错,错误信息如下: Error C3861 '_BitScanForward64': identifier not found 我已经做了#ifdef _WIN64预处理了,指示预编译在x86下不要处理这段代码了啊,怎么感觉好像编译器不予理睬一般。这种预处理,我在其他地方用的很多,没有出现过什么问题。这个_BitScanForward64按微软说法是编译器内嵌函数,但是这又如何?指明了不要处理,为啥还处理,头痛失眠,求大神指点 不好意思,囊中空空,没有C币悬赏了啊
VS2015预处理器定义无效
![图片说明](https://img-ask.csdn.net/upload/202003/10/1583826284_189232.png) 使用了_DEBUG,发现编译器好像不能识别,而且编译设置也是使用的Debug版本。 有没有大神指点一下? 上午还好好的,下午突然就不行了,重启软件也无效 又打开了另一个公司以前的项目_DEBUG有定义,但是_X64没有,预处理器那边有_DEBUG和_X64都有定义,只有_DEBUG有定义。 我感觉是我的编译器有问题,时不时的出现预处理器定义无效。。。莫名其妙
预处理指令错误的问题
#ifndef_Tree_h #define_Tree_h 为什么编译的时候出现预处理指令错误的提示?写错了吗?不对的话怎么改?
C语言的预处理问题,求大神
#include <file> 和#include “file”的区别是什么,头文件和源文件有什么区别,还有就是条件编译的格式是什么
关于预编译处理命令的C语言基础题
下列程序执行后输出的结果是 #include<stdio.h> #define MIN(x,y) (x)<(y)?(x):(y) int main() { int i=10,j=15,k; k=10*MIN(i,j); printf("%d\n",k); return 0; }
请问怎么用c语言分辨运行程序的系统是Windows还是Linux
请问怎么用c语言分辨运行程序的系统是Windows还是Linux(编译预处理的话我找不到相关的宏定义) 本人刚入门(也许还算不上)菜鸟一个,恳求指点
matlab和c++混合编译 无法通过
先使用matlab对数据进行预处理,随后将数据传递给c++进行循环计算,但是当c++程序里面使用的.m文件转换的dll时,mex可以通过,一旦运行起来matlab直接崩溃,如何处理?
C++ 如何做到字符串插值?
C++有类似于Swift的字符串插值的方式吗? > println("The current value of friendlyWelcome is $(friendlyWelcome)"); 要编译时就处理。 预处理成类似于以下的代码: > cout<<"The current value of friendlyWelcome is "<< friendlyWelcome << ""<< endl;
求各位大神帮忙做一下编译原理程序设计
1.设计词法分析器 设计各单词的状态转换图,并为不同的单词设计种别码。将词法分析器设计成供语 法分析器调用的子程序。功能包括: 具备预处理功能。将不翻译的注释等符号先滤掉,只保留要翻译的符号串,即要求设计一个供词法分析调用的预处理子程序; 能够拼出语言中的各个单词;http://ask.csdn.net/# 将拼出的标识符填入符号表; 返回(种别码, 属性值)。 2.目标代码生成器 c. 能完成指定寄存器个数的情况下将一中间代码程序段翻译成汇编语言目标代码(汇编指令应包括加、减、乘、除),要求指令条数最少的情况下,尽量使用寄存器,尽量少访问内存,这样才能做到运行效率高。 这两题用c或c++编写,急!!!!!
有关c++函数模板的具体实现原理
对于c++的函数模板,已经会使用,但是对其具体实现原理依然很模糊,希望大家告诉我,编译器(预处理器)在遇上函数模板时的具体行为,
导入*.cpp文件后,编译出现错误error LNK2005
seg.cpp的代码功能是预处理图片/检测图片 现在Cpig.cpp中加入include < seg.cpp > 出现如下错误: ``` 1>------ 已启动全部重新生成: 项目: AnimalsFatMeasure, 配置: Release x64 ------ 1>stdafx.cpp 1>AnimalsFatMeasure.cpp 1>AnimalsFatMeasureDlg.cpp 1>Cpig.cpp 1>INFOR.cpp 1>seg.cpp 1>seg.obj : error LNK2005: "class cv::Mat g_srcImage" (?g_srcImage@@3VMat@cv@@A) 已经在 Cpig.obj 中定义 1>seg.obj : error LNK2005: "class cv::Mat g_grayImage" (?g_grayImage@@3VMat@cv@@A) 已经在 Cpig.obj 中定义 1>seg.obj : error LNK2005: "class cv::Mat out_therImage" (?out_therImage@@3VMat@cv@@A) 已经在 Cpig.obj 中定义 1>seg.obj : error LNK2005: "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > saveImage" (?saveImage@@3V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A) 已经在 Cpig.obj 中定义 1>seg.obj : error LNK2005: "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > file_save" (?file_save@@3V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A) 已经在 Cpig.obj 中定义 1>Cpig.obj : error LNK2005: "float __cdecl Zfhanliang(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?Zfhanliang@@YAMV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 已经在 Cpig.obj 中定义 1>Cpig.obj : error LNK2005: "bool __cdecl Jh12(int,int)" (?Jh12@@YA_NHH@Z) 已经在 Cpig.obj 中定义 ``` 具体代码如下 seg.cpp ``` #include"stdafx.h" #include <iostream> #include<opencv2\opencv.hpp> #include<opencv2/imgproc/imgproc.hpp> #include<vector> #include<math.h> #include<algorithm> #include<time.h> #include<io.h> #include<stdio.h> #include<string> //#include<squares.cpp> using namespace cv; using namespace std; Mat g_srcImage, g_grayImage, out_therImage; string saveImage = "preidentify/save"; string file_save = "middleidentify/"; ``` Cpig.cpp代码如下 ``` #include "Resource.h" #include "stdafx.h" #include "AnimalsFatMeasure.h" #include "Cpig.h" #include "afxdialogex.h" #include "INFOR.h" #include <opencv2/opencv.hpp> #include "seg.cpp" ```
USE_VAR(argc); USE_VAR(argv); 的相关问题
最近读bash源码发现里面有好多不懂的用法,这是其中的一例,USE_VAR 是一个宏 宏定义如下 #if (__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ > 8) # define USE_VAR(x) ((void)&(x)) #else # define USE_VAR(x) #endif 在shell.c的main函数里有这样的几句话 USE_VAR(argc); USE_VAR(argv); USE_VAR(env); USE_VAR(code); USE_VAR(old_errexit_flag); #if defined (RESTRICTED_SHELL) USE_VAR(saverst); #endif 经过预处理之后的前两句变成 ((void)&(argc)); ((void)&(argv)); 我用的编译器是gcc-4.6.3 不明白的地方,既然预处理之后的代码没有什么作用为什么还写出来?有什么更深层的用意?
关于Effective C++的条款2尽量以const,enum,inline替换#define
最近在看这本书,感觉有很多不理解。可能是动手项目比较少,我想问问:书上说 #define ASPECT_RATIO 1.653 因为#define是预处理器处理的,在编译前会进行替换。所以当ASPECT_RATIO出错的时候,编译报告的是1.653的错误,因为ASPECT_RATIO是没有进去符号表的,在进行排错会浪费时间。因此用const double AspectRatio=1.653替换掉那个宏。而且这样内存里只会存在一个这样的变量,比较节省内存。 在平时使用VS的时候,我遇到的情况,除了指针问题可能难发现,其他情况报错编译器不都会直接定义到哪一行出了错么,这样一看便知道是什么问题。。![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/2.gif)可能楼主这方面经验比较少,麻烦知道的解释下。 顺便问下,条款三的尽量使用const里面,把一个函数的反回值设为了const,这种设置一般用在运算符设置里面吧。是么?谢谢解答
关于头文件包含的问题,请教大家!
程序源文件中有两个头文件,头文件A中定义了一个结构体类型_tag_addr,并在头文件开头使用了#ifnodef #define预编译宏;头文件B中定义了一个结构体类型_tag_bddr,也在头文件开头使用了预编译宏,现在的问题是我要在头文件A中声明一个_tag_bddr类型的变量,在头文件B中声明一个_tag_addr类型的变量,所以要在头文件A开头包含头文件B,也要在头文件B中包含头文件A,但是这样做编译时头文件A报错,说是没有_tag_bddr类型。请问这是什么情况,需要怎么处理?
引发了未经处理的异常:读取访问权限冲突。 this->**matrix** 是 0xCDDDCDDE。
# 可从后往前看,来自学生党的求助,缺的都是iostream ## #include "pch.h", ## #include "Graph.h" Edge::Edge() { from = -1; to = -1; weight = 0; } Edge::Edge(int f, int t, int w) { from = f; to = t; weight = w; } Graph::Graph() { } Graph::Graph(int numVert) { numVertex = numVert; numEdge = 0; Indegree = new int[numVertex]; Mark = new int[numVertex]; for (int i = 0; i < numVertex; i++) { Mark[i] = UNVISITED; Indegree[i] = 0; } } Graph::~Graph() { delete[] Mark; delete[] Indegree; } bool Graph::IsEdge(Edge oneEdge) { if (oneEdge.weight > 0 && oneEdge.weight < INFINITYS && oneEdge.to >= 0) return true; else return false; } void Graph::clearVisitedMark() { for (int i = 0; i < numVertex; i++) Mark[i] = UNVISITED; } #pragma once #include <iostream> using namespace std; #define MAX 102 #define INFINITYS 65536 #define UNVISITED 0 #define VISITED 1 #ifndef GRAPH_H #define GRAPH_H class Edge { public: Edge(); Edge(int f, int t, int w); ~Edge() {} bool operator < (const Edge &arg) { return (this->weight < arg.weight); } bool operator == (const Edge &arg) { return (this->weight == arg.weight); } bool operator > (const Edge &arg) { return (this->weight > arg.weight); } bool operator <= (const Edge &arg) { return (this->weight <= arg.weight); } bool operator >= (const Edge &arg) { return (this->weight >= arg.weight); } int from; int to; int weight; }; class Graph { public: Graph(); Graph(int numVert); virtual ~Graph(); int VerticesNum() { return numVertex; } int EdgesNum() { return numEdge; } bool IsEdge(Edge oneEdge); int FromVertex(Edge oneEdge) { return oneEdge.from; } int ToVertex(Edge oneEdge) { return oneEdge.to; } int Weight(Edge oneEdge) { return oneEdge.weight; } void clearVisitedMark(); /*virtual Edge FirstEdge(int oneVertex) = 0; virtual Edge NextEdge(Edge preEdge) = 0; virtual void setEdge(int from, int to, int weight) = 0; virtual void delEdge(int from, int to) = 0;*/ protected: int numVertex; int numEdge; int * Mark; int * Indegree; }; #endif // !GRAPH_H #include "pch.h" #include "Graphm.h" Graphm::Graphm() { } Graphm::~Graphm() { for (int i = 0; i < numVertex; i++) delete[] matrix[i]; delete[] matrix; } Edge Graphm::FristEdge(int oneVertex) { Edge myEdge; myEdge.from = oneVertex; for (int i = 0; i < numVertex; i++) if (matrix[oneVertex][i] != 0 && matrix[oneVertex][i] < INFINITYS) { myEdge.to = i; myEdge.weight = matrix[oneVertex][i]; break; } return myEdge; } Edge Graphm::NextEdge(Edge preEdge) { Edge myEdge; myEdge.from = preEdge.from; if (preEdge.to < numVertex) for (int i = preEdge.to + 1; i < numVertex; i++) if (matrix[preEdge.from][i] != 0 && matrix[preEdge.from][i] < INFINITYS) { myEdge.to = i; myEdge.weight = matrix[preEdge.from][i]; break; } return myEdge; } void Graphm::setEdge(int from, int to, int weight) { if (matrix[from][to] <= 0) { numEdge++; Indegree[to]++; } matrix[from][to] = weight; } void Graphm::delEdge(int from, int to) { if (matrix[from][to] > 0) { numEdge--; Indegree[to]--; } matrix[from][to] = 0; } void Graphm::InitWith2DimArray(int * mat, int row_col) { for (int i = 0; i < row_col; i++) for (int j = 0; j < row_col; j++) { cout << *(mat + i * row_col + j) << ", \n"; this->setEdge(i, j, *(mat + i * row_col + j)); } cout << endl; } void Graphm::DFS_ConnectedSubGraph(int n) { this->Mark[n] = VISITED; Visit(n); for (Edge e = this->FristEdge(n); this->IsEdge(e); e = this->NextEdge(e)) if (this->Mark[this->ToVertex(e)] == UNVISITED) DFS_ConnectedSubGraph(this->ToVertex(e)); } void Graphm::BFS_ConnectedSubGraph(int n) { queue<int> Q; Visit(n); Mark[n] = VISITED; Q.push(n); while (! Q.empty()) { int u = Q.front(); Q.pop(); for(Edge e = FristEdge(u); IsEdge(e); e = NextEdge(e)) if (Mark[ToVertex(e)] == UNVISITED) { Visit(ToVertex(e)); Mark[ToVertex(e)] = VISITED; Q.push(ToVertex(e)); } } } #pragma once #include "Graph.h" #include <queue> #ifndef GRAGHM_H #define GRAGHM_H class Graphm : public Graph { public: Graphm(); Graphm(int n) : Graph(n) { int i; matrix = (int **) new int *[numVertex]; for (i = 0; i < numVertex; i++) matrix[i] = new int[numVertex]; for (i = 0; i < numVertex; i++) for (int j = 0; j < numVertex; j++) matrix[i][j] = 0; } ~Graphm(); Edge FristEdge(int oneVertex); Edge NextEdge(Edge preEdge); void setEdge(int from, int to, int weight); void delEdge(int from, int to); void InitWith2DimArray(int * mat, int row_col); void DFS_ConnectedSubGraph(int n); void BFS_ConnectedSubGraph(int n); void Visit(int n) { cout << 'n' << n << " \n"; } //private: int ** matrix; }; #endif // !GRAGHM_H // main.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include "pch.h" #include <iostream> #include "Floyd.h" const int const vertexesNum = 5; int matrix1[vertexesNum][vertexesNum] = { 0 , 8 , INFINITYS, 4 , 3 , INFINITYS, 0 , INFINITYS, INFINITYS, 8 , 6 , 7 , 0 , 10 , 2 , INFINITYS, INFINITYS, INFINITYS, 0 , INFINITYS, 5 , 5 , INFINITYS, INFINITYS, 0 }; int BrokerToPassRomour(Graphm & G, Dist ** D); int main() { std::cout << "Hello World!\n"; Graphm mat[vertexesNum]; mat->InitWith2DimArray((int *)matrix1, vertexesNum); cout << endl; cout << "深度优先周游:\n" << endl; int i; for (i = 0; i < vertexesNum; i++) { mat->clearVisitedMark(); mat->DFS_ConnectedSubGraph(i); cout << endl; } cout << endl; cout << "广度优先周游:\n" << endl; for (i = 0; i < vertexesNum; i++) { mat->clearVisitedMark(); mat->BFS_ConnectedSubGraph(i); cout << endl; } cout << endl; Dist ** floydResult; createFloydResult(floydResult, vertexesNum); int startVertex = BrokerToPassRomour(mat[0], floydResult); cout << "所有顶点间的最短路径:\n" << endl; printAllDistances(floydResult, vertexesNum); cout << endl; for (i = 0; i < vertexesNum; i++) for (int j = 0; j < vertexesNum; j++) if (i != j) printOnePath(floydResult, vertexesNum, i, j); cout << endl; deleteFloydResult(floydResult, vertexesNum); if (startVertex >= 0) cout << "谣言应从 n \n" << startVertex << " 点开始传播!\n" << endl; else cout << "图不连通,问题无解 \n" << endl; return 0; } // 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单 // 调试程序: F5 或调试 >“开始调试”菜单 // 入门提示: // 1. 使用解决方案资源管理器窗口添加/管理文件 // 2. 使用团队资源管理器窗口连接到源代码管理 // 3. 使用输出窗口查看生成输出和其他消息 // 4. 使用错误列表窗口查看错误 // 5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目 // 6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件 int BrokerToPassRomour(Graphm & G, Dist ** D) { int * max; max = new int[G.VerticesNum()]; int min = 0; int pos = 0; int i = 0; for (i = 0; i < G.VerticesNum(); i++) max[i] = -1; Floyd(G, D); for (i = 0; i < G.VerticesNum(); i++) for (int j = 0; j < G.VerticesNum(); j++) if (D[i][j].length > max[i]) max[i] = D[i][j].length; min = max[0]; for (i = 1; i < G.VerticesNum(); i++) if (max[i] < min) { min = max[i]; pos = i; } if (min == INFINITYS) { cout << "此图不连通 \n" << endl; return -1; } return pos; } // pch.cpp: 与预编译标头对应的源文件;编译成功所必需的 #include "pch.h" // 一般情况下,忽略此文件,但如果你使用的是预编译标头,请保留它。 // 入门提示: // 1. 使用解决方案资源管理器窗口添加/管理文件 // 2. 使用团队资源管理器窗口连接到源代码管理 // 3. 使用输出窗口查看生成输出和其他消息 // 4. 使用错误列表窗口查看错误 // 5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目 // 6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件 #ifndef PCH_H #define PCH_H // TODO: 添加要在此处预编译的标头 #endif //PCH_H #include "pch.h" #include "Floyd.h" void createFloydResult(Dist **& D, int vertexesNum) { D = new Dist *[vertexesNum]; for (int i = 0; i < vertexesNum; i++) D[i] = new Dist[vertexesNum]; } void deleteFloydResult(Dist **& D, int vertexesNum) { for (int i = 0; i < vertexesNum; i++) delete[] D[i]; delete[] D; D = NULL; } void printAllDistances(Dist ** D, int vertexesNum) { for (int i = 0; i < vertexesNum; i++) { for (int j = 0; j < vertexesNum; j++) cout << D[i][j].length << " , \n"; cout << endl; } } void printOnePath(Dist ** D, int vertexesNum, int start, int end) { if (D[start][end].length == INFINITYS) return; int * path = new int[vertexesNum]; int vertexCount = 0; int tail = end; while (tail != start) { path[vertexCount++] = D[start][tail].pre; tail = D[start][tail].pre; } cout << "n" << start << "->n" << end << " : "; for (int i = vertexCount - 1; i >= 0; i--) cout << "n" << path[i] << "->"; cout << "n" << end << endl; delete[] path; } void Floyd(Graphm & G, Dist ** D) { int i, j, v; D = new Dist *[G.VerticesNum()]; for (i = 0; i < G.VerticesNum(); i++) D[i] = new Dist[G.VerticesNum()]; for (i = 0; i < G.VerticesNum(); i++) for (j = 0; j < G.VerticesNum(); j++) { if (i == j) { D[i][j].length = 0; D[i][j].pre = i; } else { D[i][j].length = INFINITYS; D[i][j].pre = -1; } } for (i = 0; i < G.VerticesNum(); i++) for (Edge e = G.FristEdge(i); G.IsEdge(e); e = G.NextEdge(e)) { D[i][G.ToVertex(e)].length = G.Weight(e); D[i][G.ToVertex(e)].pre = i; } for (v = 0; v < G.VerticesNum(); v++) for (i = 0; i < G.VerticesNum(); i++) for (j = 0; j < G.VerticesNum(); j++) if (D[i][j].length > (D[i][v].length + D[v][j].length)) { D[i][j].length = D[i][v].length + D[v][j].length; D[i][j].pre = D[v][j].pre; } } #pragma once #include "Graphm.h" #ifndef FLOYD_H #define FLOYD_H class Dist { public: Dist() {} ~Dist() {} int index; int length; int pre; bool operator < (const Dist &arg) { return (length < arg.length); } bool operator == (const Dist &arg) { return (length == arg.length); } bool operator > (const Dist &arg) { return (length > arg.length); } bool operator <= (const Dist &arg) { return (length <= arg.length); } bool operator >= (const Dist &arg) { return (length >= arg.length); } }; void createFloydResult(Dist ** &D, int vertexesNum); void deleteFloydResult(Dist ** &D, int vertexesNum); void printAllDistances(Dist ** D, int vertexesNum); void printOnePath(Dist ** D, int vertexesNum, int start, int end); void Floyd(Graphm &G, Dist ** D); #endif // !FLOYD_H ********************************************************************* "Graphm.cpp": #include "pch.h" #include "Graphm.h" Graphm::Graphm() { } Graphm::~Graphm() { for (int i = 0; i < numVertex; i++) delete[] matrix[i]; delete[] matrix; } Edge Graphm::FristEdge(int oneVertex) { Edge myEdge; myEdge.from = oneVertex; for (int i = 0; i < numVertex; i++) if (matrix[oneVertex][i] != 0 && matrix[oneVertex][i] < INFINITYS) { myEdge.to = i; myEdge.weight = matrix[oneVertex][i]; break; } return myEdge; } Edge Graphm::NextEdge(Edge preEdge) { Edge myEdge; myEdge.from = preEdge.from; if (preEdge.to < numVertex) for (int i = preEdge.to + 1; i < numVertex; i++) if (matrix[preEdge.from][i] != 0 && matrix[preEdge.from][i] < INFINITYS) { myEdge.to = i; myEdge.weight = matrix[preEdge.from][i]; break; } return myEdge; } void Graphm::setEdge(int from, int to, int weight) { if (matrix[from][to] <= 0) { numEdge++; Indegree[to]++; } matrix[from][to] = weight; } void Graphm::delEdge(int from, int to) { if (matrix[from][to] > 0) { numEdge--; Indegree[to]--; } matrix[from][to] = 0; } void Graphm::InitWith2DimArray(int * mat, int row_col) { for (int i = 0; i < row_col; i++) for (int j = 0; j < row_col; j++) { cout << *(mat + i * row_col + j) << ", \n"; this->setEdge(i, j, *(mat + i * row_col + j)); } cout << endl; } void Graphm::DFS_ConnectedSubGraph(int n) { this->Mark[n] = VISITED; Visit(n); for (Edge e = this->FristEdge(n); this->IsEdge(e); e = this->NextEdge(e)) if (this->Mark[this->ToVertex(e)] == UNVISITED) DFS_ConnectedSubGraph(this->ToVertex(e)); } void Graphm::BFS_ConnectedSubGraph(int n) { queue<int> Q; Visit(n); Mark[n] = VISITED; Q.push(n); while (! Q.empty()) { int u = Q.front(); Q.pop(); for(Edge e = FristEdge(u); IsEdge(e); e = NextEdge(e)) if (Mark[ToVertex(e)] == UNVISITED) { Visit(ToVertex(e)); Mark[ToVertex(e)] = VISITED; Q.push(ToVertex(e)); } } } ************************************************************** 第51行 if (matrix[from][to] <= 0) //void Graphm::setEdge(int from, int to, int weight) 引发了未经处理的异常:读取访问权限冲突。 this->matrix 是 0xCDDDCDDE
System.NullReferenceException: 未将对象引用设置到对象的实例
在学习微软认知服务,用C#编写了一个简单的接口,但是出现了“未将对象引用设置到对象的实例 (System.NullReferenceException)”这个问题。在网上查了原因,好像有以下几种说法: “System.NullReferenceException: 未将对象引用设置到对象的实例”问题可能原因如下: 1、ViewState 对象为Null。 2、DateSet 空。 3、sql语句或Datebase的原因导致DataReader空。 4、声明字符串变量时未赋空值就应用变量。 5、未用new初始化对象。 6、Session对象为空。 7、对控件赋文本值时,值不存在。 8、使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值。 9、使用FindControl时,控件不存在却没有做预处理。 10、重复定义造成未将对象引用设置到对象的实例错误. 第一次接触C#,看不出来究竟属于哪一类错误,求问各位大神这个错误应该怎么修正。编译器提示的错误在代码中注释出来了 以下附小弟源码: ``` using System.Collections.Generic; using System.Net.Http; using System.Text; using Newtonsoft.Json; using System; using System.Net.Http.Headers; using System.Web; public class Program { private const string ApiKey = "804e4631f32a421b8cf8066ca2d54fb0"; private const string DescribeImageApiUrl = "https://api.projectoxford.ai/vision/v1.0/describe?maxCandidates=3"; private const string ContentType = "application/json"; public static void Main(string[] args) { var imageUrls = new[] { "http://i.imgur.com/OJ6lzhz.jpg", "http://i.imgur.com/OV80Pr8.jpg" }; foreach(var imageUrl in imageUrls) { var response = DescribeImage(imageUrl); Console.WriteLine("Image: {http://img.taopic.com/uploads/allimg/110910/2316-110910124R147.jpg}"); Console.WriteLine("Descriptions:"); foreach (var caption in response.Description.Captions)//提示错误出现在这一行 { Console.WriteLine(caption.Text); } Console.WriteLine(new string('-', 5)); } Console.Read(); } private static DescribeImageResponse DescribeImage(string imageUrl) { var client = new HttpClient(); client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", ApiKey); var imageJson = new { url = imageUrl }; var response = client.PostAsync( DescribeImageApiUrl, new StringContent( JsonConvert.SerializeObject(imageJson), Encoding.UTF8, ContentType)).Result; var content = response.Content.ReadAsStringAsync().Result; return JsonConvert.DeserializeObject<DescribeImageResponse>(content); } private class DescribeImageResponse { public DescribeImageResponseDescription Description { get; set; } public string RequestId { get; set; } public DescribeImageResponseMetadata Metadata { get; set; } } private class DescribeImageResponseDescription { public List<string> Tags { get; set; } public List<DescribeImageResponseDescriptionCaption> Captions { get; set; } } private class DescribeImageResponseDescriptionCaption { public string Text { get; set; } public decimal Confidence { get; set; } } private class DescribeImageResponseMetadata { public double Width { get; set; } public double Height { get; set; } public string Format { get; set; } } } ```
LNK2001;LNK1120【VC6.0】
代码如下: 疯狂的小鸟 C++ #include< stdlib.h> #include<windows.h> #include< time.h> #include<conio.h> #include< iostream> #include< mmsystem.h> #include "SDL_image.h" #include "SDL_ttf.h" #include "SDL.h" using namespace std; #pragma comment(lib, "winmm.lib") #pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"") intiii=0; intscore =0; inty=0; intposi[3][2]= {{640,-300},{940,-300},{1240,-300}}; inti=0,n=3; //n为管道对数 SDL_Color textColor_1 = { 37, 134, 108 };//绿色 //SDL_Color textColor_2 = { 112, 112, 35 }; SDL_Color textColor_2 = { 255, 255, 255 }; //白色 SDL_Color textColor_3 = { 0, 88, 132 }; //白色 class Event { public: SDL_Event event; Uint8 *keystates; Event() { keystates=SDL_GetKeyState( NULL ); } }; Event thing; classData { public: int bird_y; int score; int posi[20][2]; SDL_Rect bird_1; SDL_Rect bird_2; SDL_Rect bg; SDL_Rect welcome; SDL_Rect pipe_up; SDL_Rect pipe_down; SDL_Rect bird_cls; SDL_Rect foot; SDL_Surface* load_imag(char*s) { SDL_Surface* temp; temp=IMG_Load(s); bg.x=0; bg.y=0; bg.w=640; bg.h=480; welcome.x=681; welcome.y=0; welcome.w=640; welcome.h=480; bird_1.x=17; bird_1.y=508; bird_1.w=52; bird_1.h=34; bird_2.x=461; bird_2.y=531; bird_2.w=52; bird_2.h=33; bird_cls.w=52; bird_cls.h=33; bird_cls.x=0; bird_cls.y=0; pipe_up.x=1361; pipe_up.y=11; pipe_up.w=103; pipe_up.h=410; pipe_down.x=1487; pipe_down.y=14; pipe_down.w=103; pipe_down.h=443; foot.x=0; foot.y=404; foot.w=640; foot.h=80; return temp;//SDL_DisplayFormat( temp ); } TTF_Font* load_font() { SDL_Init( SDL_INIT_EVERYTHING ); TTF_Init(); return TTF_OpenFont( "main_1.dat", 36 ); } }; Data data; class Pri { public: SDL_Surface* out; //输出 SDL_Surface* main ; //主窗口 TTF_Font *font; SDL_Rect a; //设置初始位置 SDL_Surface*bird; SDL_Rect xy; SDL_Surface*font_1; SDL_Surface*font_2; SDL_Surface*font_11; SDL_Surface*font_22; Pri() { TTF_Font *font = NULL; init();//初始化输出设备 } int init() { SDL_Init( SDL_INIT_EVERYTHING ); TTF_Init(); main= SDL_SetVideoMode( 640, 478, 32, SDL_SWSURFACE ); SDL_WM_SetCaption("Flappy bird",NULL);//标题 font=data.load_font(); out=data.load_imag("main_2.dat"); y=150; posi[0][0]=640; posi[0][1]=-300; posi[1][0]=940; posi[1][1]=-300; posi[2][0]=1240; posi[2][1]=-300; return 1; } int pipe() { } int bir(int y)//x=150 {int ii; i+=1; xy.x=150; xy.y=y; if(i<14) { xy.x=150; xy.y=y; SDL_BlitSurface(out,&data.bg,main,NULL); for(ii=0;ii<n;ii++) { xy.x=posi[ii][0]; xy.y=posi[ii][1]; SDL_BlitSurface(out,&data.pipe_down,main,&xy); xy.x=posi[ii][0]; xy.y=posi[ii][1]+600; SDL_BlitSurface(out,&data.pipe_up,main,&xy); } xy.x=150; xy.y=y; SDL_BlitSurface(out,&data.bird_1,main,&xy); xy.x=0; xy.y=404; SDL_BlitSurface(out,&data.foot,main,&xy); } else { xy.x=150; xy.y=y; SDL_BlitSurface(out,&data.bg,main,NULL); for(ii=0;ii<n;ii++) { xy.x=posi[ii][0]; xy.y=posi[ii][1]; SDL_BlitSurface(out,&data.pipe_down,main,&xy); xy.x=posi[ii][0]; xy.y=posi[ii][1]+600; SDL_BlitSurface(out,&data.pipe_up,main,&xy); } xy.x=150; xy.y=y; SDL_BlitSurface(out,&data.bird_2,main,&xy); xy.x=0; xy.y=404; SDL_BlitSurface(out,&data.foot,main,&xy); if(i>28)i=0; } return 0; } int bg() { SDL_BlitSurface(out,&data.bg,main,&xy); return 0; } int over() { int x=0,y=0,i=0; xy.x=250; xy.y=150; font_1=TTF_RenderText_Solid( font, "Game over !", textColor_3); SDL_BlitSurface( font_1 , NULL, main,& xy); SDL_Flip(main); xy.x=350; xy.y=200; font_1=TTF_RenderText_Solid( font, "Retry game", textColor_1 ); font_11=TTF_RenderText_Solid( font, "Retry game", textColor_2 ); SDL_BlitSurface( font_1 , NULL, main,& xy); xy.x=350; xy.y=280; font_2=TTF_RenderText_Solid( font, " Exit game", textColor_1 ); font_22=TTF_RenderText_Solid( font, " Exit game", textColor_2 ); SDL_BlitSurface( font_2 , NULL, main,& xy); /* xy.x=10; xy.y=440; //野指针 SDL_BlitSurface( TTF_RenderText_Solid( font, "Esc:exit game Space:to jump hekun ", textColor_1 ) , NULL, main,& xy); SDL_Flip( main ); //更新窗口 */ while(SDL_PollEvent(& thing.event ), 1) { i+=2; Sleep(1); if( thing.keystates[ SDLK_ESCAPE] )exit(0); if( thing.event.type == SDL_QUIT )// 点击了SDL关闭按钮 { exit(0); } if((x>350&&x<540)&&(y<240)&&(y>200)) { if(thing. event.type == SDL_MOUSEBUTTONDOWN) if(thing.event.button.button== SDL_BUTTON_LEFT ) { SDL_FreeSurface(font_1); SDL_FreeSurface(font_11); SDL_FreeSurface(font_22); SDL_FreeSurface(font_2); WinExec("Flappy bird.exe",NULL); exit(0); return 11; } } else { } if((x>350&&x<540)&&(y<320)&&(y>280)) //结束游戏 { if(thing. event.type == SDL_MOUSEBUTTONDOWN) if(thing.event.button.button== SDL_BUTTON_LEFT )exit(0); } if(thing. event.type == SDL_MOUSEMOTION ) { x=thing.event.motion.x; y=thing.event.motion.y; //获得鼠标坐标 if((thing.event.motion.x>350&&thing.event .motion .x<540)&&(thing.event.motion.y<240)&&(thing.event.motion.y>200)) { xy.x=350; xy.y=200; SDL_BlitSurface( font_11, NULL, main,& xy); SDL_Flip(main); } else { xy.x=350; xy.y=200; SDL_BlitSurface( font_1 , NULL, main,& xy); SDL_Flip(main); } if((thing.event.motion.x>350&&thing.event .motion .x<540)&&(thing.event.motion.y<320)&&(thing.event.motion.y>280)) { xy.x=350; xy.y=280; SDL_BlitSurface( font_22 , NULL, main,& xy); SDL_Flip(main); } else { xy.x=350; xy.y=280; SDL_BlitSurface( font_2 , NULL, main,& xy); SDL_Flip(main); } } } return 0; } intwelcome() { intx=0,y=0,i=0; SDL_BlitSurface(out,&data.welcome,main,NULL); bird=out; xy.x=350; xy.y=200; font_1=TTF_RenderText_Solid( font, "Start game", textColor_1 ); font_11=TTF_RenderText_Solid( font, "Start game", textColor_2 ); SDL_BlitSurface( font_1 , NULL, main,& xy); xy.x=350; xy.y=280; font_2=TTF_RenderText_Solid( font, " Exit game", textColor_1 ); font_22=TTF_RenderText_Solid( font, " Exit game", textColor_2 ); SDL_BlitSurface( font_2 , NULL, main,& xy); xy.x=10; xy.y=440; //野指针 SDL_BlitSurface( TTF_RenderText_Solid( font, "Esc:exit game Space:to jump hekun ", textColor_1 ) , NULL, main,& xy); SDL_Flip( main ); //更新窗口 while(SDL_PollEvent(& thing.event ), 1) { i+=2; Sleep(1); if( thing.keystates[ SDLK_ESCAPE] )exit(0); if( thing.event.type == SDL_QUIT )// 点击了SDL关闭按钮 { exit(0); } if((x>350&&x<540)&&(y<240)&&(y>200)) { if(thing. event.type == SDL_MOUSEBUTTONDOWN) if(thing.event.button.button== SDL_BUTTON_LEFT ) { SDL_FreeSurface(font_1); SDL_FreeSurface(font_11); SDL_FreeSurface(font_22); SDL_FreeSurface(font_2); return 0; } } else { } if((x>350&&x<540)&&(y<320)&&(y>280)) //结束游戏 { if(thing. event.type == SDL_MOUSEBUTTONDOWN) if(thing.event.button.button== SDL_BUTTON_LEFT )exit(0); } if(thing. event.type == SDL_MOUSEMOTION ) { x=thing.event.motion.x; y=thing.event.motion.y; //获得鼠标坐标 if((thing.event.motion.x>350&&thing.event .motion .x<540)&&(thing.event.motion.y<240)&&(thing.event.motion.y>200)) { xy.x=350; xy.y=200; SDL_BlitSurface( font_11, NULL, main,& xy); SDL_Flip(main); } else { xy.x=350; xy.y=200; SDL_BlitSurface( font_1 , NULL, main,& xy); SDL_Flip(main); } if((thing.event.motion.x>350&&thing.event .motion .x<540)&&(thing.event.motion.y<320)&&(thing.event.motion.y>280)) { xy.x=350; xy.y=280; SDL_BlitSurface( font_22 , NULL, main,& xy); SDL_Flip(main); } else { xy.x=350; xy.y=280; SDL_BlitSurface( font_2 , NULL, main,& xy); SDL_Flip(main); } } if(i==400) { xy.x=150; xy.y=250; SDL_BlitSurface(bird,&data.bird_1,main,&xy); SDL_Flip(main); } if(i==800) { xy.x=150; xy.y=250; SDL_BlitSurface(bird,&data.bird_2,main,&xy); i=0; SDL_Flip(main); } } return 0; } }; Pri pri; int game_judge() {int i=0; if(y>370||y<-10) { if(pri.over()==11)return12; } for(i=0;i<3;i++) { if(posi[i][0]<202&& posi[i][0]>50) { if(y<posi[i][1]+ 420 ||y>posi[i][1]+570) {if(pri.over()==11)return12;} } } return0; } int game_loop() { y=150,i=0; int ii=0,iii=0; SDL_Surface *font; pri.bg(); chars[50]; Uint32 start = 0; sprintf(s," FPS:%d\t\t\t\t\t\t\t\tScore:%d",1000/(SDL_GetTicks()-start),score); intq=0; while(SDL_PollEvent(& thing.event ), 1) { start = SDL_GetTicks(); i++; Sleep(1); SDL_Flip(pri.main); y+=4; if(y>430)y=100; if(thing.event.button.state==SDL_PRESSED)y-=20; if( thing.keystates[ SDLK_SPACE] )y-=20; if( thing.keystates[ SDLK_ESCAPE] )exit(0); if( thing.event.type == SDL_QUIT )// 点击了SDL关闭按钮 { exit(0); } if(game_judge()==12)return0; pri.bir(y); //显示 每秒循环的次数 ii++; if(ii>20) { sprintf(s," FPS:%d\t\t\t\t\t\t\t\tScore:%d",1000/(SDL_GetTicks()-start)+rand()%5,score); ii=0; } font=TTF_RenderText_Solid( pri.font, s, textColor_2 ); SDL_BlitSurface(font , NULL,pri. main, NULL); SDL_Flip(pri.main); SDL_FreeSurface(font); posi[0][0]-=2; posi[1][0]-=2; posi[2][0]-=2; if(posi[0][0]<=(-110)) {posi[0][0]=posi[2][0]+300;posi[0][1]=-(rand()%180)-220;} if(posi[1][0]<=(-110)) {posi[1][0]=posi[0][0]+300;posi[1][1]=-(rand()%180)-220;} if(posi[2][0]<=(-110)) {posi[2][0]=posi[1][0]+300;posi[2][1]=-(rand()%180)-220;} iii++; if(iii>50) for(iii=0;iii<3;iii++) { if(posi[iii][0]<50); score++; iii=0; break; } } return 0; } int main(int argc, char* argv[]) { while(1) { pri.init();//初始化输出设备 pri.welcome(); game_loop(); } return0; } 编译没有报错,连接显示MSUCRTD.lib(crtexe.obj):error LNK2001:unresolved external symbol_main Debug:fatal error LNK1120:14 unresolved externals. 14个错误都是这种样式: error LNK2001:unresolved external symbol _TTF_Init 工程是win32 application 设置里面连接都改成了/subsystem:windows C/C++的预处理器也改成了windows,预编译头文件全部选择不使用预补偿页眉 常规里面选择了使用MFC作为共享的DLL 以上都是我百度的方法,全部试过 也没有用。所以只好来麻烦各位大神了
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
python自动下载图片
近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡。 可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉思。。。。 突然旁边的IOS同事问:‘嘿,兄弟,我发现一个网站的图片很有意思啊,能不能帮我保存下来提升我的开发灵感?’ 作为一个坚强的社畜怎么能说自己不行呢,当时朕就不假思索的答应:‘oh, It’s simple. Wait for me for a ...
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
C++(数据结构与算法):62---搜索树(二叉搜索树、索引二叉搜索树)
一、搜索树的复杂度分析 本文考察二叉搜索树和索引二叉搜索树 二叉搜索树的渐进性能可以和跳表媲美: 查找、插入、删除操作所需的平均时间为Θ(logn) 查找、插入、删除操作的最坏情况的时间为Θ(n) 元素按升序输出时所需时间为Θ(n) 虽然在最坏情况下的查找、插入、删除操作,散列表和二叉搜索树的时间性能相同,但是散列表在最好的情况下具有超级性能Θ(1) 不过,对于一个指定的关键...
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
最全最强!世界大学计算机专业排名总结!
我正在参与CSDN200进20,希望得到您的支持,扫码续投票5次。感谢您! (为表示感谢,您投票后私信我,我把我总结的人工智能手推笔记和思维导图发送给您,感谢!) 目录 泰晤士高等教育世界大学排名 QS 世界大学排名 US News 世界大学排名 世界大学学术排名(Academic Ranking of World Universities) 泰晤士高等教育世界大学排名 中国共...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
一个程序在计算机中是如何运行的?超级干货!!!
强烈声明:本文很干,请自备茶水!???? 开门见山,咱不说废话! 你有没有想过,你写的程序,是如何在计算机中运行的吗?比如我们搞Java的,肯定写过这段代码 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } ...
立即提问