C++爬虫,获取IP附属地

#include "testipbelong.h"
//#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include  
#include  

#pragma comment(lib, "WinInet.lib")
各种转码
std::string UtfToGbk(const char* utf8)
{
	int len = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, NULL, 0);
	wchar_t* wstr = new wchar_t[len + 1];
	memset(wstr, 0, len + 1);
	MultiByteToWideChar(CP_UTF8, 0, utf8, -1, wstr, len);
	len = WideCharToMultiByte(CP_ACP, 0, wstr, -1, NULL, 0, NULL, NULL);
	char* str = new char[len + 1];
	memset(str, 0, len + 1);
	WideCharToMultiByte(CP_ACP, 0, wstr, -1, str, len, NULL, NULL);
	if (wstr) delete[] wstr;
	return str;
}

std::string GBKToUTF8(const std::string& strGBK)
{
	std::string strOutUTF8 = "";
	WCHAR * str1;
	int n = MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, NULL, 0);
	str1 = new WCHAR[n];
	MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, str1, n);
	n = WideCharToMultiByte(CP_UTF8, 0, str1, -1, NULL, 0, NULL, NULL);
	char * str2 = new char[n];
	WideCharToMultiByte(CP_UTF8, 0, str1, -1, str2, n, NULL, NULL);
	strOutUTF8 = str2;
	delete[]str1;
	str1 = NULL;
	delete[]str2;
	str2 = NULL;
	return strOutUTF8;
}

std::wstring GBKToUnicode(const std::string& str)
{
	int  len = 0;
	len = str.length();
	int  unicodeLen = ::MultiByteToWideChar(CP_ACP,
		0,
		str.c_str(),
		-1,
		NULL,
		0);
	wchar_t *  pUnicode;
	pUnicode = new  wchar_t[unicodeLen + 1];
	memset(pUnicode, 0, (unicodeLen + 1)*sizeof(wchar_t));
	::MultiByteToWideChar(CP_ACP,
		0,
		str.c_str(),
		-1,
		(LPWSTR)pUnicode,
		unicodeLen);
	std::wstring  rt;
	rt = (wchar_t*)pUnicode;
	delete  pUnicode;

	return  rt;
}

std::wstring UTF8ToUnicode(const std::string& str)
{
	int  len = 0;
	len = str.length();
	int  unicodeLen = ::MultiByteToWideChar(CP_UTF8,
		0,
		str.c_str(),
		-1,
		NULL,
		0);
	wchar_t *  pUnicode;
	pUnicode = new  wchar_t[unicodeLen + 1];
	memset(pUnicode, 0, (unicodeLen + 1)*sizeof(wchar_t));
	::MultiByteToWideChar(CP_UTF8,
		0,
		str.c_str(),
		-1,
		(LPWSTR)pUnicode,
		unicodeLen);
	std::wstring  rt;
	rt = (wchar_t*)pUnicode;
	delete  pUnicode;

	return  rt;
}

std::string UnicodeToANSI(const std::wstring& str)
{
	char*     pElementText;
	int    iTextLen;
	// wide char to multi char
	iTextLen = WideCharToMultiByte(CP_ACP,
		0,
		str.c_str(),
		-1,
		NULL,
		0,
		NULL,
		NULL);
	pElementText = new char[iTextLen + 1];
	memset((void*)pElementText, 0, sizeof(char)* (iTextLen + 1));
	::WideCharToMultiByte(CP_ACP,
		0,
		str.c_str(),
		-1,
		pElementText,
		iTextLen,
		NULL,
		NULL);
	std::string strText;
	strText = pElementText;
	delete[] pElementText;
	return strText;
}

使用WININET爬,没有监控机制,不能设置超时

//QString GetIpAddress(const std::string  IP)
//{
//
//	HINTERNET hINet, hHttpFile;
//
//	char szSizeBuffer[2000];
//
//	DWORD dwLengthSizeBuffer = sizeof(szSizeBuffer);
//
//	//InternetOpen初始化WININET.DLL
//	hINet = InternetOpenA("IE6.0", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
//
//	std::string  url = "http://www.ip138.com/ips138.asp?ip=" + IP;
//	if (!hINet)
//	{
//		//QMessageBox::information(this , QString::fromLocal8Bit("操作结果"), QString::fromLocal8Bit("hINet错误!"));
//		return "hINet ERROR!";
//	}
//
//	//这个函数连接到一个网络服务器上并且从服务器上读取数据
//	hHttpFile = InternetOpenUrlA(hINet, url.c_str(), NULL, 0, 0, 0);
//	if (!hHttpFile)
//	{
//		//QMessageBox::information(g_DataStatisticalDlg, QString::fromLocal8Bit("操作结果"), QString::fromLocal8Bit("hHttpFile错误!"));
//		return "hHttpFile 错误!";
//	}
//
//	//得到关于文件的信息
//	BOOL bQuery = HttpQueryInfo(hHttpFile,
//		HTTP_QUERY_CONTENT_LENGTH,
//		szSizeBuffer,
//		&dwLengthSizeBuffer, NULL);
//
//	if (!bQuery)
//	{
//		//QMessageBox::information(g_DataStatisticalDlg, QString::fromLocal8Bit("操作结果"), QString::fromLocal8Bit("bQuery错误!"));
//		InternetCloseHandle(hINet);
//		return "bQuery ERROR!";
//	}
//
//	INT FileSize = atol(szSizeBuffer);
//	std::wstring  revData;
//	revData.resize(FileSize);
//
//	char buffer[1025];
//	DWORD dwBytesRead = 0;
//	BOOL bRead;
//
//	//web浏览器将在InternetReadFile上循环 ,不停地从Internet上读入数据块。
//	do
//	{
//		ZeroMemory(buffer, 1025);
//		bRead = InternetReadFile(hHttpFile,buffer, 1024, &dwBytesRead);
//		buffer[dwBytesRead] = '\0';
//		std::wstring str1 = GBKToUnicode(buffer);
//		//revData += buffer;
//		//revData += str1;
//		revData += str1;
//	} while (dwBytesRead);
//	
//	//std::ofstream   out_file("C:\\Users\\Administrator\\Desktop\\1.txt");
//	//out_file << revData;              //输出到文件
//	//BOOL bRead = InternetReadFile(hHttpFile, &revData[0], FileSize, &dwBytesRead);
//
//	if (!bRead)
//	{
//		//QMessageBox::information(g_DataStatisticalDlg, QString::fromLocal8Bit("操作结果"), QString::fromLocal8Bit("bRead错误!"));
//		return "bRead ERROR!";
//	}
//
//	InternetCloseHandle(hHttpFile);
//	InternetCloseHandle(hINet);
//
//	//std::smatch m;
//	//std::regex regexp("
  • (?.*?)</li>"); // // //while (std::regex_search(revData, m, regexp)) // //{ // // revData = m.str(); // // std::ofstream out_file2("C:\\Users\\Administrator\\Desktop\\2.txt"); // // out_file2 << revData; //输出到文件 // //} // // QString ipBelong; // QRegularExpression regexp("<td align=\"center\"><ul class=\"ul1\"><li>(?<title>.*?)</li>"); // // // std::string str1 = GBKToUTF8(revData); // //std::wstring str2 = UTF8ToUnicode(revData); // QRegularExpressionMatch rm = regexp.match(QString::fromStdWString((revData))); // // if (rm.hasMatch()) // { // ipBelong = rm.captured("title"); // ipBelong = ipBelong.mid(5); // //revData = ipBelong.toLocal8Bit(); // //std::wstring str1 = GBKToUnicode(revData); // //std::string str1 = GBKToUTF8(revData); // //std::wstring str2 = UTF8ToUnicode(str1); // //std::string std3 = UnicodeToANSI(str2); // //std::ofstream out_file2("C:\\Users\\Administrator\\Desktop\\3.txt"); // //out_file2 << revData; //输出到文件 // } // // return ipBelong; // //return revData; //}</code></pre> <p>线程监控超时</p> <pre><code class="language-cpp">struct PARA { std::string url = ""; //std::string* requst = NULL; //bool result = false; HINTERNET hINet = NULL; HINTERNET hHttpFile = NULL; BOOL bQuery = TRUE; BOOL bRead = TRUE; QString ipBelong; }; static DWORD WINAPI thread_access(LPVOID args) { PARA* p; p = (PARA*)args; p->hINet = InternetOpenA("IE6.0", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); char szSizeBuffer[2000]; DWORD dwLengthSizeBuffer = sizeof(szSizeBuffer); INT FileSize = atol(szSizeBuffer); std::wstring revData; revData.resize(FileSize); if (p->hINet != NULL) { p->hHttpFile = InternetOpenUrlA(p->hINet, p->url.c_str(), NULL, 0, INTERNET_FLAG_DONT_CACHE, 0); if (p->hHttpFile != NULL) { p->bQuery = HttpQueryInfo(p->hHttpFile, HTTP_QUERY_CONTENT_LENGTH, szSizeBuffer, &dwLengthSizeBuffer, NULL); if (!p->bQuery) { //QMessageBox::information(g_DataStatisticalDlg, QString::fromLocal8Bit("操作结果"), QString::fromLocal8Bit("bQuery错误!")); InternetCloseHandle(p->hINet); //return "bQuery ERROR!"; } char buffer[1025]; DWORD dwBytesRead = 0; //web浏览器将在InternetReadFile上循环 ,不停地从Internet上读入数据块。 do { ZeroMemory(buffer, 1025); p->bRead = InternetReadFile(p->hHttpFile, buffer, 1024, &dwBytesRead); buffer[dwBytesRead] = '\0'; std::wstring str1 = GBKToUnicode(buffer); revData += str1; } while (dwBytesRead); //if (!p->bRead) //{ // InternetCloseHandle(p->bS); // p->bS = NULL; // //InternetCloseHandle(p->session); // //QMessageBox::information(g_DataStatisticalDlg, QString::fromLocal8Bit("操作结果"), QString::fromLocal8Bit("bRead错误!")); // //return "bRead ERROR!"; //} //p->requst = new std::string(); //BYTE Temp[MAXSIZE]; //ULONG Number = 1; //while (Number > 0) //{ // InternetReadFile(p->bS, Temp, MAXSIZE - 1, &Number); // Temp[Number] = '\0'; // p->requst->append((char*)Temp); //} InternetCloseHandle(p->hHttpFile); p->hHttpFile = NULL; //p->result = true; } InternetCloseHandle(p->hINet); p->hINet = NULL; QRegularExpression regexp("<td align=\"center\"><ul class=\"ul1\"><li>(?<title>.*?)</li>"); QRegularExpressionMatch rm = regexp.match(QString::fromStdWString((revData))); if (rm.hasMatch()) { //p->requst->append((char*)); p->ipBelong = rm.captured("title"); p->ipBelong = p->ipBelong.mid(5); } } return 1; } static QString urlAccess(const char* url, int timeOutSecs) { PARA *p1 = new PARA(); p1->url = url; DWORD id; //int result = -1; HANDLE hThread = CreateThread(NULL, 0, thread_access, p1, 0, &id); if (WaitForSingleObject(hThread, timeOutSecs * 1000)) { std::cout << "TIME" << std::endl; if (p1->hHttpFile != NULL) { InternetCloseHandle(p1->hHttpFile); } if (p1->hINet != NULL) { InternetCloseHandle(p1->hINet); } if (!p1->bQuery || !p1->bRead) { InternetCloseHandle(p1->hHttpFile); InternetCloseHandle(p1->hINet); } } //if (p1->result) //{ // request.append(*(p1->requst)); // result = 1; //} //result = 0; if (hThread) { CloseHandle(hThread); } return p1->ipBelong; //return result; }</code></pre> <p>qt测试代码</p> <pre><code class="language-cpp">testIPBelong::testIPBelong(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); connect(ui.pushButton_IPBelong, SIGNAL(clicked()), this, SLOT(GetIPBelong())); } testIPBelong::~testIPBelong() { } void testIPBelong::GetIPBelong() { QString IP = ui.lineEdit_IP->text(); //std::string strip = GetIpAddress(IP.toStdString()); //std::ofstream out_file3("C:\\Users\\Administrator\\Desktop\\4.txt"); //out_file3 << strip; //输出到文件 //QString IPBelong = QString::fromLocal8Bit(strip.data()); //QString IPBelong = GetIpAddress(IP.toStdString()); std::string url = "http://www.ip138.com/ips138.asp?ip=" + IP.toStdString(); QTime time; time.start(); QString IPBelong = urlAccess(url.c_str(), 5); int i = time.elapsed(); ui.lineEdit_IBelong->setText(IPBelong + QString::number(i)); }</code></pre> <br> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1275897164509233152"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(c++,c++,wininet,爬虫)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1773582305621770240.htm" title="华为OD机试 - 单向链表中间节点(Java & JS & Python & C & C++)" target="_blank">华为OD机试 - 单向链表中间节点(Java & JS & Python & C & C++)</a> <span class="text-muted">华为OD题库</span> <a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/%E9%93%BE%E8%A1%A8/1.htm">链表</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>须知哈喽,本题库完全免费,收费是为了防止被爬,大家订阅专栏后可以私信联系退款。感谢支持文章目录须知题目描述输出描述解析代码题目描述给定一个单链表L,请编写程序输出L中间结点保存的数据。如果有两个中间结点,则输出第二个中间结点保存的数据。例如:给定L为1→7→5,则输出应该为7;给定L为1→2→3→4,则输出应该为3;输入描述每个输入包含1个测试用例。每个测试用例:第一行给出链表首结点的地址、结点总</div> </li> <li><a href="/article/1773547565535526912.htm" title="c++中如何判断变量的数据类型,并输出" target="_blank">c++中如何判断变量的数据类型,并输出</a> <span class="text-muted">xnrbjy</span> <a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>C++中如果想要判断变量的数据类型,可以使用typeid运算符。该运算符返回一个std::type_info类型的对象,可以使用name()方法获取其名称从而确定变量的类型,例如:#include#includeusingnamespacestd;intmain(){inta=123;floatb=3.14;boolc=true;chard='A';stringe="HelloWorld";cou</div> </li> <li><a href="/article/1773545802220765184.htm" title="C++学习笔记(lambda函数)" target="_blank">C++学习笔记(lambda函数)</a> <span class="text-muted">__TAT__</span> <a class="tag" taget="_blank" href="/search/C%26amp%3BC%2B%2B/1.htm">C&C++</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>C++learningnote1、lambda函数的语法2、lambda函数的几种用法1、lambda函数的语法lambda函数的一般语法如下:[capture_clause](parameters)->return_type{function_body}capture_clause:需要捕获的变量,但要求该变量必须在这个作用域中。通常的捕获方式有以下几种:[]:不捕获任何变量[&]:按引用捕获变</div> </li> <li><a href="/article/1773430993756160000.htm" title="C++ pdf 打印 插入图片" target="_blank">C++ pdf 打印 插入图片</a> <span class="text-muted">灿烂李</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>一:使用PODOFO给PDF插入图片:#includeintmain(){PoDoFo::PdfMemDocumentpdfDocument;PoDoFo::PdfPage*page;PoDoFo::PdfImageimage;PoDoFo::PdfVecObjects*vec_objects;PoDoFo::PdfRectrect;//打开PDF文档pdfDocument.loadFromFil</div> </li> <li><a href="/article/1773183149480673280.htm" title="《外观模式(极简c++)》" target="_blank">《外观模式(极简c++)》</a> <span class="text-muted">Bovinitwo</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%EF%BC%88%E6%9E%81%E7%AE%80c%2B%2B%E7%89%88%EF%BC%89/1.htm">设计模式(极简c++版)</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>本文章属于专栏-概述-《设计模式(极简c++版)》-CSDN博客模式说明方案:外观模式提供了一个统一的接口,简化了一组复杂子系统的访问方式。优点:将客户端与子系统解耦,降低了复杂性。提高了代码的灵活性和可维护性。缺点:可能导致外观类过于庞大,承担了过多的责任。增加了系统的抽象层,有时会影响性能。本质思想:外观模式的本质思想是为一组复杂的子系统提供一个简单的接口,隐藏其复杂性,使得客户端可以更轻松地</div> </li> <li><a href="/article/1772756264393179136.htm" title="OpenCV(一个C++人工智能领域重要开源基础库) 简介" target="_blank">OpenCV(一个C++人工智能领域重要开源基础库) 简介</a> <span class="text-muted">愚梦者</span> <a class="tag" taget="_blank" href="/search/OpenCV/1.htm">OpenCV</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/opencv/1.htm">opencv</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86/1.htm">图像处理</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/1.htm">计算机视觉</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a> <div>返回:OpenCV系列文章目录(持续更新中......)上一篇:OpenCV4.9.0配置选项参考下一篇:OpenCV4.9.0开源计算机视觉库安装概述引言:OpenCV(全称OpenSourceComputerVisionLibrary)是一个基于开放源代码发行的跨平台计算机视觉库,可以用来进行图像处理、计算机视觉和机器学习等领域的开发。该库由英特尔公司于1999年开始开发,最初是为了加速处理器</div> </li> <li><a href="/article/1772749090128461824.htm" title="动态多态的注意事项" target="_blank">动态多态的注意事项</a> <span class="text-muted">Austin_1024</span> <a class="tag" taget="_blank" href="/search/%E5%8A%A8%E6%80%81%E5%A4%9A%E6%80%81/1.htm">动态多态</a><a class="tag" taget="_blank" href="/search/%E9%9D%99%E6%80%81%E5%A4%9A%E6%80%81/1.htm">静态多态</a><a class="tag" taget="_blank" href="/search/%E8%99%9A%E5%87%BD%E6%95%B0/1.htm">虚函数</a><a class="tag" taget="_blank" href="/search/%E5%AD%90%E7%B1%BB%E9%87%8D%E5%86%99%E7%88%B6%E7%B1%BB%E8%99%9A%E5%87%BD%E6%95%B0%E5%AE%9E%E7%8E%B0%E5%8A%A8%E6%80%81%E5%A4%9A%E6%80%81/1.htm">子类重写父类虚函数实现动态多态</a> <div>大家好:衷心希望各位点赞。您的问题请留在评论区,我会及时回答。多态的基本概念多态是C++面向对象三大特性之一(多态、继承、封装)多态分为两类:静态多态:函数重载和运算符重载属于静态多态,复用函数名。动态多态:通过派生类和虚函数实现运行时多态。静态多态和动态多态的区别:静态多态的函数地址早绑定——编译阶段确定函数地址。动态多态的函数地址晚绑定——运行阶段确定函数地址。下面通过案例讲解多态:#incl</div> </li> <li><a href="/article/1772696600393613312.htm" title="C/C++中的Static关键字" target="_blank">C/C++中的Static关键字</a> <span class="text-muted">SuhyOvO</span> <a class="tag" taget="_blank" href="/search/C%E8%AF%AD%E8%A8%80/1.htm">C语言</a><a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a> <div>Static关键字在C和C++编程中是不可或缺的一部分,它用于定义具有持久存储期的变量和函数,以及类的静态成员。虽然它的使用相对直接,但不恰当的使用可能会导致难以调试的错误和混淆。本文将探讨static关键字的概念、作用以及在C和C++中的具体应用。文章目录第一部分:深入理解Static关键字定义和基本概念在C和C++中static的基本作用第二部分:Static在C语言中的使用静态全局变量静态局</div> </li> <li><a href="/article/1772693579618123776.htm" title="C++进阶学习(3)类类型转换" target="_blank">C++进阶学习(3)类类型转换</a> <span class="text-muted">一只特立独行猪</span> <a class="tag" taget="_blank" href="/search/C%2B%2B%E7%9A%84%E5%AD%A6%E4%B9%A0/1.htm">C++的学习</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>文章目录一、类类型转换1.构造函数构造2.类型转换函数一、类类型转换数据类型转换在程序编译时或在程序运行实现基本类型←→基本类型基本类型←→类类型类类型←→类类型类对象的类型转换可由两种方式说明:构造函数转换函数称为用户定义的类型转换或类类型转换,有隐式调用和显式调用方式1.构造函数构造当类ClassX具有以下形式的构造函数:说明了一种从参数arg的类型到该类类型的转换ClassX::ClassX</div> </li> <li><a href="/article/1772690431591645184.htm" title="C++ 如何去认识模板" target="_blank">C++ 如何去认识模板</a> <span class="text-muted">SuhyOvO</span> <a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>引言:C++模板是泛型编程的基石,允许程序员定义可与任何数据类型协作的函数和类。这种机制极大地增加了代码的灵活性和复用性,是C++最强大的特性之一。本文将深入探讨C++模板的概念、优势以及使用方法,帮助读者掌握这一重要的编程工具。文章目录模板简介模板的优势一、模板基础1.1模板的概念1.2函数模板1.3类模板二、模板进阶2.1模板的实例化2.2模板的特化2.3模板的默认参数2.4模板的嵌套三、模板</div> </li> <li><a href="/article/1772672178613977088.htm" title="C++面试题" target="_blank">C++面试题</a> <span class="text-muted">虾仁A</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a> <div>目录一、堆和栈的区别二、C++中new、delte和malloc的区别三、什么是源对象四、C++有哪些设计模式五,你使用过C++哪些类型的指针一、堆和栈的区别特性堆栈申请方式由程序员显式申请和释放由系统自动分配和释放分配方式动态分配自动分配分配效率相对较慢,需要遍历内存链表寻找合适空间相对较快,系统直接分配内存地址不连续的内存区域连续的内存区域大小限制大小灵活,上限取决于虚拟内存大小固定,通常较小</div> </li> <li><a href="/article/1772629878403825664.htm" title="15届蓝桥杯备赛(3)" target="_blank">15届蓝桥杯备赛(3)</a> <span class="text-muted">sad_liu</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/sad_liu%E7%9A%84%E5%88%B7%E9%A2%98%E8%AE%B0%E5%BD%95/1.htm">sad_liu的刷题记录</a><a class="tag" taget="_blank" href="/search/%E8%93%9D%E6%A1%A5%E6%9D%AF/1.htm">蓝桥杯</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a> <div>文章目录15届蓝桥杯备赛(3)回溯算法组合组合总和III电话号码的字母组合组合总和组合总和II分割回文串子集子集II非递减子序列全排列全排列II贪心算法分发饼干最大子数组和买股票的最佳时机II跳跃游戏15届蓝桥杯备赛(3)提高C++程序的输入输出效率,尤其是在需要大量输入输出操作时。ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie</div> </li> <li><a href="/article/1772562162502402048.htm" title="C++ primer 第十二章" target="_blank">C++ primer 第十二章</a> <span class="text-muted">红鼻子怡宝</span> <a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/primer/1.htm">primer</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>动态分配的对象的生存期与它们在哪里创建无关,只有当显式地被释放时,这些对象才会销毁。静态内存用来保存局部static对象、类static数据成员以及定义在任何函数之外的变量。栈内存用来保存定义在函数内的非static对象。堆内存用来存储动态分配的对象。静态或栈内存中的对象由编译器自动创建和销毁,而堆内存中的对象必须显式地销毁它们。1.动态内存与智能指针运算符new在动态内存中为对象分配空间并返回一</div> </li> <li><a href="/article/1772532580764155904.htm" title="5. C++ 局部静态变量在什么时候分配内存和初始化?" target="_blank">5. C++ 局部静态变量在什么时候分配内存和初始化?</a> <span class="text-muted">九五一</span> <a class="tag" taget="_blank" href="/search/C%2B%2B%E7%9F%A5%E8%AF%86/1.htm">C++知识</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a> <div>C++局部静态变量在什么时候分配内存和初始化?对于C语言的全局和静态变量,不管是否被初始化,其内存空间都是全局的;如果初始化,那么初始化发生在任何代码执行之前,属于编译期初始化。由于内置变量无须资源释放操作,仅需要回收内存空间,因此程序结束后全局内存空间被一起回收,不存在变量依赖问题,没有任何代码会再被执行!C++引入了对象,这给全局变量的管理带领新的麻烦。C++的对象必须有构造函数生成,并最终执</div> </li> <li><a href="/article/1772492046456651776.htm" title="win7休眠、待机api" target="_blank">win7休眠、待机api</a> <span class="text-muted">WarmSword</span> <a class="tag" taget="_blank" href="/search/Windows/1.htm">Windows</a><a class="tag" taget="_blank" href="/search/api/1.htm">api</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/%E4%BC%91%E7%9C%A0/1.htm">休眠</a><a class="tag" taget="_blank" href="/search/%E5%BE%85%E6%9C%BA/1.htm">待机</a><a class="tag" taget="_blank" href="/search/%E5%85%B3%E6%9C%BA/1.htm">关机</a> <div>win7休眠、待机api通过c++让windows进入休眠或者待机状态。xp、win7下用SetSystemPowerState函数,vista及之后的版本使用SetSuspendState函数。xp、win7:SetSystemPowerStateBOOLWINAPISetSystemPowerState(_In_BOOLfSuspend,_In_BOOLfForce);ParametersfS</div> </li> <li><a href="/article/1772483613099622400.htm" title="【No.15】蓝桥杯动态规划上|最少硬币问题|0/1背包问题|小明的背包1|空间优化滚动数组(C++)" target="_blank">【No.15】蓝桥杯动态规划上|最少硬币问题|0/1背包问题|小明的背包1|空间优化滚动数组(C++)</a> <span class="text-muted">ChoSeitaku</span> <a class="tag" taget="_blank" href="/search/%E8%93%9D%E6%A1%A5%E6%9D%AF%E5%A4%87%E8%80%83/1.htm">蓝桥杯备考</a><a class="tag" taget="_blank" href="/search/%E8%93%9D%E6%A1%A5%E6%9D%AF/1.htm">蓝桥杯</a><a class="tag" taget="_blank" href="/search/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92/1.htm">动态规划</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a> <div>DP初步:状态转移与递推最少硬币问题有多个不同面值的硬币(任意面值)数量不限输入金额S,输出最少硬币组合。回顾用贪心求解硬币问题硬币面值1、2、5。支付13元,要求硬币数量最少贪心:(1)5元硬币,2个(2)2元硬币,1个(3)1元硬币,1个硬币面值1、2、4、5、6.,支付9元。贪心:(1)6元硬币,1个(2)2元硬币,1个(3)1元硬币,1个错误!答案是:5元硬币+4元硬币=2个硬币问题的正解</div> </li> <li><a href="/article/1772448998746030080.htm" title="游戏客户客户端面经" target="_blank">游戏客户客户端面经</a> <span class="text-muted">Unity游戏开发</span> <a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F%E5%BC%80%E5%8F%91/1.htm">游戏开发</a><a class="tag" taget="_blank" href="/search/%E6%B1%82%E8%81%8C/1.htm">求职</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a> <div>C#和C++的类的区别C#List添加100个Obj和100int内存是怎么变化的重载和重写的区别,重载是怎么实现的重写是怎么实现的?虚函数表是类的还是对象的用过哪些C++的STLVector底层是怎么实现的Vector添加一百次数据内存是怎么变化Map的底层,红黑树的查询和插入的时间复杂程度,Unordermap的底层实现是什么List的底层是怎么实现的场景里面有6个玩家扮演贪吃蛇进行3v3,场</div> </li> <li><a href="/article/1772378004765343744.htm" title="C++中,#define和const有什么区别? / 静态链接和动态链接有什么区别?" target="_blank">C++中,#define和const有什么区别? / 静态链接和动态链接有什么区别?</a> <span class="text-muted">Layla_c</span> <a class="tag" taget="_blank" href="/search/C%E8%AF%AD%E8%A8%80/1.htm">C语言</a><a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a> <div>一、C++中,#define和const有什么区别?C++中,#define和const都用于定义常量,但它们在用法和特性上存在显著的区别。定义与用途:#define是C++预处理器的指令,用于定义宏。宏可以是函数、对象、类型等,它的作用是在预处理阶段对代码进行文本替换。const是C++的关键字,用于定义常量。这些常量在编译阶段生效,并带有数据类型。const定义的常量必须在声明时初始化。编译器</div> </li> <li><a href="/article/1772361009047076864.htm" title="c++类和结构体" target="_blank">c++类和结构体</a> <span class="text-muted">JINbigXIA</span> <a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>众所周知c++是c的高级版本在面向对象上就有了体现c++有一个多的内容就是类,那么我们来看看如何创建类还要类和结构体之间的区别classplayer{public:intx;inty;charname[10];intage;voidadd(intx,inty){std::cout<<x+y<<std::endl;}};别慌张!我来给大家一一解释:首先我们还是先创建一个玩家的类player,在里面有</div> </li> <li><a href="/article/1772358239015469056.htm" title="C++中using namespace std的作用以及vector数组的使用" target="_blank">C++中using namespace std的作用以及vector数组的使用</a> <span class="text-muted">宁77吖</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>C++中usingnamespacestd的作用以及vector数组的使用本文为自我学习记录,主要包括C++中usingnamespacestd的作用vector数组的使用文章目录C++中usingnamespacestd的作用以及vector数组的使用一、usingnamespacestd二、vector数组2.1使用vector>和ints[][]定义二维数组区别2.2vector数组的插入,</div> </li> <li><a href="/article/1772352322677047296.htm" title="c# 与c++类型对应关系" target="_blank">c# 与c++类型对应关系</a> <span class="text-muted">让您看见未来</span> <a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>c#c++ubytecharshortshortint32int32_tlongint64_tfloatfloatdoubledoubleIntPt,[]void*</div> </li> <li><a href="/article/1772337470550114304.htm" title="【C++】学习记录--Thread线程库的使用" target="_blank">【C++】学习记录--Thread线程库的使用</a> <span class="text-muted">KK虫</span> <a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a> <div>线程是进程的一个执行路径,是CPU调度与分配的的最小单元。创建线程需要一个可调用的函数或者函数对象作为线程的入口。C++11中可以通过函数指针/函数对象或者lambda表达式实现。基本语法#includethreadt(function_name,args...)'function_name'为程序入口点'args'为传递给函数的参数线程创建后,可以使用't.join*()'等待线程完成,或使用'</div> </li> <li><a href="/article/1772293292256460800.htm" title="matlab ICP配准高阶用法——统计每次迭代的配准误差并可视化" target="_blank">matlab ICP配准高阶用法——统计每次迭代的配准误差并可视化</a> <span class="text-muted">点云侠</span> <a class="tag" taget="_blank" href="/search/matlab%E7%82%B9%E4%BA%91%E5%B7%A5%E5%85%B7%E7%AE%B1/1.htm">matlab点云工具箱</a><a class="tag" taget="_blank" href="/search/matlab/1.htm">matlab</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/1.htm">计算机视觉</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0/1.htm">线性代数</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>目录一、概述二、代码实现三、结果展示1、原始点云2、配准结果3、配准误差本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。一、概述  在进行论文写作时,需要做对比实验,来分析改进算法的性能,期间用到了迭代误差分布统计的比较分析,为直观表示配准误差,需要进行可视化</div> </li> <li><a href="/article/1772249366694789120.htm" title="GB28181 —— 4、C++编写GB28181设备端,完成将.h264文件读取转发至GB28181服务并可播放(附源码)" target="_blank">GB28181 —— 4、C++编写GB28181设备端,完成将.h264文件读取转发至GB28181服务并可播放(附源码)</a> <span class="text-muted">信必诺</span> <a class="tag" taget="_blank" href="/search/GB28181/1.htm">GB28181</a><a class="tag" taget="_blank" href="/search/GB28181/1.htm">GB28181</a><a class="tag" taget="_blank" href="/search/eXosip2/1.htm">eXosip2</a><a class="tag" taget="_blank" href="/search/Qt/1.htm">Qt</a><a class="tag" taget="_blank" href="/search/h264/1.htm">h264</a> <div>效果 源码说明     主要功能模拟设备端,完成注册、注销、心跳等,完成读取.h264文件实时转ps格式后封包rtp进行推送给服务端播放。 源码/****@remark:ps头的封装,里面的具体数据的填写已经占位,可以参考标准*@param:pData[in]填充ps头数据的地址*s64Src[in]时间戳*@return:0success,othersfailed*/intgb28181_mak</div> </li> <li><a href="/article/1772239549091610624.htm" title="第十五届蓝桥杯软件赛模拟赛第三期(c++,python,java通用)" target="_blank">第十五届蓝桥杯软件赛模拟赛第三期(c++,python,java通用)</a> <span class="text-muted">北洋的霞洛</span> <a class="tag" taget="_blank" href="/search/%E8%93%9D%E6%A1%A5%E6%9D%AF%E5%8E%86%E5%B9%B4%E7%9C%9F%E9%A2%98/1.htm">蓝桥杯历年真题</a><a class="tag" taget="_blank" href="/search/%E8%93%9D%E6%A1%A5%E6%9D%AF/1.htm">蓝桥杯</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>注:1.填空题用最简单的方式(暴力递归或枚举)得出答案即可。2.编程题若无思路可用暴力递归或枚举也能拿到不少的分数。第一题【问题描述】请问2023有多少个约数?即有多少个正整数,使得2023是这个正整数的整数倍。【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。【思路】简单模拟【代码】#includeusing</div> </li> <li><a href="/article/1772236653537067008.htm" title="CSE101 C++ Introduction to Data Structures and Algorithms" target="_blank">CSE101 C++ Introduction to Data Structures and Algorithms</a> <span class="text-muted">zhuyu0206girl</span> <a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>CSE101IntroductiontoDataStructuresandAlgorithmsProgrammingAssignment5Inthisprojectyouwillcreateanew,andsomewhatdifferentintegerListADT,thistimeinC++.YouwillusethisListtoperformshufflingoperations,andd</div> </li> <li><a href="/article/1772147161971097600.htm" title="Python爬虫-批量爬取星巴克全国门店" target="_blank">Python爬虫-批量爬取星巴克全国门店</a> <span class="text-muted">写python的鑫哥</span> <a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB%E6%A1%88%E4%BE%8B1000%E8%AE%B2/1.htm">爬虫案例1000讲</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E6%98%9F%E5%B7%B4%E5%85%8B/1.htm">星巴克</a><a class="tag" taget="_blank" href="/search/%E9%97%A8%E5%BA%97/1.htm">门店</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE/1.htm">数据</a><a class="tag" taget="_blank" href="/search/%E7%9B%AE%E6%A0%87%E5%9F%8E%E5%B8%82/1.htm">目标城市</a><a class="tag" taget="_blank" href="/search/%E5%85%A8%E5%9B%BD/1.htm">全国</a> <div>前言本文是该专栏的第22篇,后面会持续分享python爬虫干货知识,记得关注。本文笔者以星巴克为例,通过Python实现批量爬取目标城市的门店数据以及全国的门店数据。具体的详细思路以及代码实现逻辑,跟着笔者直接往下看正文详细内容。(附带完整代码)正文地址:aHR0cHM6Ly93d3cuc3RhcmJ1Y2tzLmNvbS5jbi8=目标:获取星巴克全国门店数据(包含具体的门店信息,经度和纬度坐标</div> </li> <li><a href="/article/1772127522750791680.htm" title="突破编程_C++_C++11新特性(type_traits的概念以及核心类型特性)" target="_blank">突破编程_C++_C++11新特性(type_traits的概念以及核心类型特性)</a> <span class="text-muted">breakthrough_01</span> <a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>1type_traits的概述type_traits是C++标准模板库(STL)中的一个头文件,它定义了一系列模板类,这些模板类在编译期获取某一参数、某一变量、某一个类等的类型信息,主要用于进行静态检查。通过使用type_traits,程序员可以在编译时就获得关于类型的详细信息,从而可以在不实际运行程序的情况下进行类型相关的优化和检查。type_traits中的内容主要可以分为以下几类:辅助基类:</div> </li> <li><a href="/article/1772103355984838656.htm" title="C/C++中使用静态函数的好处是什么" target="_blank">C/C++中使用静态函数的好处是什么</a> <span class="text-muted">kfjh</span> <a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a> <div>使用静态函数的好处主要体现在以下几个方面:文件作用域:静态函数只在声明它的文件内可见,这有助于隐藏实现细节,提高封装性。这意味着不同的开发者在编写各自的函数时,不必担心函数名冲突的问题,因为即使函数名相同,只要它们在不同的文件中并且是静态的,就不会互相干扰。无this指针:静态函数不依赖于类的实例,因此它们不能直接访问非静态成员变量和非静态成员函数。这使得静态函数更像是一个普通的函数,只是它们被定</div> </li> <li><a href="/article/1772025437413769216.htm" title="C++面试题和笔试题(五)-手撕代码篇" target="_blank">C++面试题和笔试题(五)-手撕代码篇</a> <span class="text-muted">虾仁A</span> <a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>一、编程题给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将字符串定义为有效的回文串示例1:输入:‘Aman,apla,acanal:Panama"输出:true解释:“amanaplanacanalpanama"是回文串示例2:输入:“raceacar"输出:false解释:"raceacar"不是回文串提示:1#include#includeu</div> </li> <li><a href="/article/34.htm" title="Java 并发包之线程池和原子计数" target="_blank">Java 并发包之线程池和原子计数</a> <span class="text-muted">lijingyao8206</span> <a class="tag" taget="_blank" href="/search/Java%E8%AE%A1%E6%95%B0/1.htm">Java计数</a><a class="tag" taget="_blank" href="/search/ThreadPool/1.htm">ThreadPool</a><a class="tag" taget="_blank" href="/search/%E5%B9%B6%E5%8F%91%E5%8C%85/1.htm">并发包</a><a class="tag" taget="_blank" href="/search/java%E7%BA%BF%E7%A8%8B%E6%B1%A0/1.htm">java线程池</a> <div>对于大数据量关联的业务处理逻辑,比较直接的想法就是用JDK提供的并发包去解决多线程情况下的业务数据处理。线程池可以提供很好的管理线程的方式,并且可以提高线程利用率,并发包中的原子计数在多线程的情况下可以让我们避免去写一些同步代码。     这里就先把jdk并发包中的线程池处理器ThreadPoolExecutor 以原子计数类AomicInteger 和倒数计时锁C</div> </li> <li><a href="/article/161.htm" title="java编程思想 抽象类和接口" target="_blank">java编程思想 抽象类和接口</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%8A%BD%E8%B1%A1%E7%B1%BB/1.htm">抽象类</a><a class="tag" taget="_blank" href="/search/%E6%8E%A5%E5%8F%A3/1.htm">接口</a> <div>接口c++对接口和内部类只有简介的支持,但在java中有队这些类的直接支持   1 ,抽象类 :  如果一个类包含一个或多个抽象方法,该类必须限定为抽象类(否者编译器报错)   抽象方法 : 在方法中仅有声明而没有方法体    package com.wj.Interface; </div> </li> <li><a href="/article/288.htm" title="[房地产与大数据]房地产数据挖掘系统" target="_blank">[房地产与大数据]房地产数据挖掘系统</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</a> <div>        随着一个关键核心技术的突破,我们已经是独立自主的开发某些先进模块,但是要完全实现,还需要一定的时间...        所以,除了代码工作以外,我们还需要关心一下非技术领域的事件..比如说房地产     &nb</div> </li> <li><a href="/article/415.htm" title="数组队列总结" target="_blank">数组队列总结</a> <span class="text-muted">沐刃青蛟</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E7%BB%84%E9%98%9F%E5%88%97/1.htm">数组队列</a> <div>      数组队列是一种大小可以改变,类型没有定死的类似数组的工具。不过与数组相比,它更具有灵活性。因为它不但不用担心越界问题,而且因为泛型(类似c++中模板的东西)的存在而支持各种类型。      以下是数组队列的功能实现代码:   import List.Student; public class</div> </li> <li><a href="/article/542.htm" title="Oracle存储过程无法编译的解决方法" target="_blank">Oracle存储过程无法编译的解决方法</a> <span class="text-muted">IT独行者</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B%E3%80%80/1.htm">存储过程 </a> <div>今天同事修改Oracle存储过程又导致2个过程无法被编译,流程规范上的东西,Dave 这里不多说,看看怎么解决问题。   1.     查看无效对象 XEZF@xezf(qs-xezf-db1)> select object_name,object_type,status from all_objects where status='IN</div> </li> <li><a href="/article/669.htm" title="重装系统之后oracle恢复" target="_blank">重装系统之后oracle恢复</a> <span class="text-muted">文强chu</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div>前几天正在使用电脑,没有暂停oracle的各种服务。 突然win8.1系统奔溃,无法修复,开机时系统 提示正在搜集错误信息,然后再开机,再提示的无限循环中。 无耐我拿出系统u盘 准备重装系统,没想到竟然无法从u盘引导成功。 晚上到外面早了一家修电脑店,让人家给装了个系统,并且那哥们在我没反应过来的时候, 直接把我的c盘给格式化了 并且清理了注册表,再装系统。 然后的结果就是我的oracl</div> </li> <li><a href="/article/796.htm" title="python学习二( 一些基础语法)" target="_blank">python学习二( 一些基础语法)</a> <span class="text-muted">小桔子</span> <a class="tag" taget="_blank" href="/search/pthon/1.htm">pthon</a><a class="tag" taget="_blank" href="/search/%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95/1.htm">基础语法</a> <div>紧接着把!昨天没看继续看django 官方教程,学了下python的基本语法 与c类语言还是有些小差别: 1.ptyhon的源文件以UTF-8编码格式 2. /   除 结果浮点型 //  除 结果整形 %   除 取余数 *   乘 **  乘方 eg 5**2 结果是5的2次方25 _&</div> </li> <li><a href="/article/923.htm" title="svn 常用命令" target="_blank">svn 常用命令</a> <span class="text-muted">aichenglong</span> <a class="tag" taget="_blank" href="/search/SVN/1.htm">SVN</a><a class="tag" taget="_blank" href="/search/%E7%89%88%E6%9C%AC%E5%9B%9E%E9%80%80/1.htm">版本回退</a> <div>1 svn回退版本   1)在window中选择log,根据想要回退的内容,选择revert this version或revert chanages from this version 两者的区别:   revert this version:表示回退到当前版本(该版本后的版本全部作废)   revert chanages from this versio</div> </li> <li><a href="/article/1050.htm" title="某小公司面试归来" target="_blank">某小公司面试归来</a> <span class="text-muted">alafqq</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a> <div>先填单子,还要写笔试题,我以时间为急,拒绝了它。。时间宝贵。 老拿这些对付毕业生的东东来吓唬我。。 面试官很刁难,问了几个问题,记录下; 1,包的范围。。。public,private,protect. --悲剧了 2,hashcode方法和equals方法的区别。谁覆盖谁.结果,他说我说反了。 3,最恶心的一道题,抽象类继承抽象类吗?(察,一般它都是被继承的啊) 4,stru</div> </li> <li><a href="/article/1177.htm" title="动态数组的存储速度比较 集合框架" target="_blank">动态数组的存储速度比较 集合框架</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/%E9%9B%86%E5%90%88%E6%A1%86%E6%9E%B6/1.htm">集合框架</a> <div>集合框架: 自定义数据结构(增删改查等) package 数组; /** * 创建动态数组 * @author 百合 * */ public class ArrayDemo{ //定义一个数组来存放数据 String[] src = new String[0]; /** * 增加元素加入容器 * @param s要加入容器</div> </li> <li><a href="/article/1304.htm" title="用JS实现一个JS对象,对象里有两个属性一个方法" target="_blank">用JS实现一个JS对象,对象里有两个属性一个方法</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/js%E5%AF%B9%E8%B1%A1/1.htm">js对象</a> <div><html> <head> </head> <body> 用js代码实现一个js对象,对象里有两个属性,一个方法 </body> <script> var obj={a:'1234567',b:'bbbbbbbbbb',c:function(x){ </div> </li> <li><a href="/article/1431.htm" title="探索JUnit4扩展:使用Rule" target="_blank">探索JUnit4扩展:使用Rule</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a><a class="tag" taget="_blank" href="/search/JUnit/1.htm">JUnit</a><a class="tag" taget="_blank" href="/search/Rule/1.htm">Rule</a> <div>        在上一篇文章中,讨论了使用Runner扩展JUnit4的方式,即直接修改Test Runner的实现(BlockJUnit4ClassRunner)。但这种方法显然不便于灵活地添加或删除扩展功能。下面将使用JUnit4.7才开始引入的扩展方式——Rule来实现相同的扩展功能。 1. Rule       &n</div> </li> <li><a href="/article/1558.htm" title="[Gson一]非泛型POJO对象的反序列化" target="_blank">[Gson一]非泛型POJO对象的反序列化</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/POJO/1.htm">POJO</a> <div>当要将JSON数据串反序列化自身为非泛型的POJO时,使用Gson.fromJson(String, Class)方法。自身为非泛型的POJO的包括两种: 1. POJO对象不包含任何泛型的字段 2. POJO对象包含泛型字段,例如泛型集合或者泛型类 Data类 a.不是泛型类, b.Data中的集合List和Map都是泛型的 c.Data中不包含其它的POJO    </div> </li> <li><a href="/article/1685.htm" title="【Kakfa五】Kafka Producer和Consumer基本使用" target="_blank">【Kakfa五】Kafka Producer和Consumer基本使用</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a> <div>0.Kafka服务器的配置 一个Broker, 一个Topic Topic中只有一个Partition()   1. Producer: package kafka.examples.producers; import kafka.producer.KeyedMessage; import kafka.javaapi.producer.Producer; impor</div> </li> <li><a href="/article/1812.htm" title="lsyncd实时同步搭建指南——取代rsync+inotify" target="_blank">lsyncd实时同步搭建指南——取代rsync+inotify</a> <span class="text-muted">ronin47</span> <div>1. 几大实时同步工具比较 1.1 inotify + rsync 最近一直在寻求生产服务服务器上的同步替代方案,原先使用的是 inotify + rsync,但随着文件数量的增大到100W+,目录下的文件列表就达20M,在网络状况不佳或者限速的情况下,变更的文件可能10来个才几M,却因此要发送的文件列表就达20M,严重减低的带宽的使用效率以及同步效率;更为要紧的是,加入inotify</div> </li> <li><a href="/article/1939.htm" title="java-9. 判断整数序列是不是二元查找树的后序遍历结果" target="_blank">java-9. 判断整数序列是不是二元查找树的后序遍历结果</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> public class IsBinTreePostTraverse{ static boolean isBSTPostOrder(int[] a){ if(a==null){ return false; } /*1.只有一个结点时,肯定是查找树 *2.只有两个结点时,肯定是查找树。例如{5,6}对应的BST是 6 {6,5}对应的BST是</div> </li> <li><a href="/article/2066.htm" title="MySQL的sum函数返回的类型" target="_blank">MySQL的sum函数返回的类型</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/jdbc/1.htm">jdbc</a> <div>今天项目切换数据库时,出错 访问数据库的代码大概是这样: String sql = "select sum(number) as sumNumberOfOneDay from tableName"; List<Map> rows = getJdbcTemplate().queryForList(sql); for (Map row : rows</div> </li> <li><a href="/article/2193.htm" title="java设计模式之单例模式" target="_blank">java设计模式之单例模式</a> <span class="text-muted">chicony</span> <a class="tag" taget="_blank" href="/search/java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">java设计模式</a> <div> 在阎宏博士的《JAVA与模式》一书中开头是这样描述单例模式的:   作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 单例模式的结构   单例模式的特点: 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。   饿汉式单例类   publ</div> </li> <li><a href="/article/2320.htm" title="javascript取当月最后一天" target="_blank">javascript取当月最后一天</a> <span class="text-muted">ctrain</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div> <!--javascript取当月最后一天--> <script language=javascript> var current = new Date(); var year = current.getYear(); var month = current.getMonth(); showMonthLastDay(year, mont</div> </li> <li><a href="/article/2447.htm" title="linux tune2fs命令详解" target="_blank">linux tune2fs命令详解</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/tune2fs/1.htm">tune2fs</a><a class="tag" taget="_blank" href="/search/%E6%9F%A5%E7%9C%8B%E7%B3%BB%E7%BB%9F%E6%96%87%E4%BB%B6%E5%9D%97%E4%BF%A1%E6%81%AF/1.htm">查看系统文件块信息</a> <div>一.简介: tune2fs是调整和查看ext2/ext3文件系统的文件系统参数,Windows下面如果出现意外断电死机情况,下次开机一般都会出现系统自检。Linux系统下面也有文件系统自检,而且是可以通过tune2fs命令,自行定义自检周期及方式。 二.用法: Usage: tune2fs [-c max_mounts_count] [-e errors_behavior] [-g grou</div> </li> <li><a href="/article/2574.htm" title="做有中国特色的程序员" target="_blank">做有中国特色的程序员</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a> <div>  从出版业说起 网络作品排到靠前的,都不会太难看,一般人不爱看某部作品也是因为不喜欢这个类型,而此人也不会全不喜欢这些网络作品。究其原因,是因为网络作品都是让人先白看的,看的好了才出了头。而纸质作品就不一定了,排行榜靠前的,有好作品,也有垃圾。 许多大牛都是写了博客,后来出了书。这些书也都不次,可能有人让为不好,是因为技术书不像小说,小说在读故事,技术书是在学知识或温习知识,有</div> </li> <li><a href="/article/2701.htm" title="Android:TextView属性大全" target="_blank">Android:TextView属性大全</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/textview/1.htm">textview</a> <div>android:autoLink    设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)  android:autoText    如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输</div> </li> <li><a href="/article/2828.htm" title="tomcat虚拟目录安装及其配置" target="_blank">tomcat虚拟目录安装及其配置</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/tomcat%E9%85%8D%E7%BD%AE%E8%AF%B4%E6%98%8E/1.htm">tomcat配置说明</a><a class="tag" taget="_blank" href="/search/tomca%E9%83%A8%E7%BD%B2web%E5%BA%94%E7%94%A8/1.htm">tomca部署web应用</a><a class="tag" taget="_blank" href="/search/tomcat%E8%99%9A%E6%8B%9F%E7%9B%AE%E5%BD%95%E5%AE%89%E8%A3%85/1.htm">tomcat虚拟目录安装</a> <div>转载请出自出处:http://eksliang.iteye.com/blog/2097184 1.-------------------------------------------tomcat  目录结构 config:存放tomcat的配置文件 temp  :存放tomcat跑起来后存放临时文件用的 work   : 当第一次访问应用中的jsp</div> </li> <li><a href="/article/2955.htm" title="浅谈:APP有哪些常被黑客利用的安全漏洞" target="_blank">浅谈:APP有哪些常被黑客利用的安全漏洞</a> <span class="text-muted">gg163</span> <a class="tag" taget="_blank" href="/search/APP/1.htm">APP</a> <div>首先,说到APP的安全漏洞,身为程序猿的大家应该不陌生;如果抛开安卓自身开源的问题的话,其主要产生的原因就是开发过程中疏忽或者代码不严谨引起的。但这些责任也不能怪在程序猿头上,有时会因为BOSS时间催得紧等很多可观原因。由国内移动应用安全检测团队爱内测(ineice.com)的CTO给我们浅谈关于Android 系统的开源设计以及生态环境。 1. 应用反编译漏洞:APK 包非常容易被反编译成可读</div> </li> <li><a href="/article/3082.htm" title="C#根据网址生成静态页面" target="_blank">C#根据网址生成静态页面</a> <span class="text-muted">hvt</span> <a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/asp.net/1.htm">asp.net</a><a class="tag" taget="_blank" href="/search/hovertree/1.htm">hovertree</a> <div>HoverTree开源项目中HoverTreeWeb.HVTPanel的Index.aspx文件是后台管理的首页。包含生成留言板首页,以及显示用户名,退出等功能。根据网址生成页面的方法:   bool CreateHtmlFile(string url, string path) { //http://keleyi.com/a/bjae/3d10wfax.htm stri</div> </li> <li><a href="/article/3209.htm" title="SVG 教程 (一)" target="_blank">SVG 教程 (一)</a> <span class="text-muted">天梯梦</span> <a class="tag" taget="_blank" href="/search/svg/1.htm">svg</a> <div>SVG 简介 SVG 是使用 XML 来描述二维图形和绘图程序的语言。 学习之前应具备的基础知识: 继续学习之前,你应该对以下内容有基本的了解: HTML XML 基础 如果希望首先学习这些内容,请在本站的首页选择相应的教程。 什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义用于网络的基于矢量</div> </li> <li><a href="/article/3336.htm" title="一个简单的java栈" target="_blank">一个简单的java栈</a> <span class="text-muted">luyulong</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E6%A0%88/1.htm">栈</a> <div> public class MyStack { private long[] arr; private int top; public MyStack() { arr = new long[10]; top = -1; } public MyStack(int maxsize) { arr = new long[maxsize]; top </div> </li> <li><a href="/article/3463.htm" title="基础数据结构和算法八:Binary search" target="_blank">基础数据结构和算法八:Binary search</a> <span class="text-muted">sunwinner</span> <a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a><a class="tag" taget="_blank" href="/search/Binary+search/1.htm">Binary search</a> <div>Binary search needs an ordered array so that it can use array indexing to dramatically reduce the number of compares required for each search, using the classic and venerable binary search algori</div> </li> <li><a href="/article/3590.htm" title="12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!" target="_blank">12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!</a> <span class="text-muted">刘星宇</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a> <div>12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个! 1.gets()函数 问:请找出下面代码里的问题: #include<stdio.h> int main(void) {     char buff[10];     memset(buff,0,sizeof(buff)); </div> </li> <li><a href="/article/3717.htm" title="ITeye 7月技术图书有奖试读获奖名单公布" target="_blank">ITeye 7月技术图书有奖试读获奖名单公布</a> <span class="text-muted">ITeye管理员</span> <a class="tag" taget="_blank" href="/search/%E6%B4%BB%E5%8A%A8/1.htm">活动</a><a class="tag" taget="_blank" href="/search/ITeye/1.htm">ITeye</a><a class="tag" taget="_blank" href="/search/%E8%AF%95%E8%AF%BB/1.htm">试读</a> <div>ITeye携手人民邮电出版社图灵教育共同举办的7月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。 7月试读活动回顾: http://webmaster.iteye.com/blog/2092746 本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀): 《Java性能优化权威指南》 </div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>