<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_前进的道路不是一帆风顺的，要随时迎接挑战，敢于战胜困难！</title><subtitle type="text">坚持一下，找人聊聊天，释放一些压力！</subtitle><id>http://feed.cnblogs.com/blog/u/42594/rss</id><updated>2010-08-11T08:29:17Z</updated><author><name>山径山精</name><uri>http://www.cnblogs.com/enterBeijingThreetimes/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enterBeijingThreetimes/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/42594/rss"/><entry><id>http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797426.html</id><title type="text">判断整数序列是不是二元查找树的后序遍历结果</title><summary type="text">#include &amp;lt;iostream&amp;gt;using namespace std;bool verifySquenceOfBST(int squence[], int length){if (squence==NULL||length&amp;lt;=0){return false;}int root=squence[length-1];int i=0;for(; i&amp;lt;length-1; +...</summary><published>2010-08-11T08:29:00Z</published><updated>2010-08-11T08:29:00Z</updated><author><name>山径山精</name><uri>http://www.cnblogs.com/enterBeijingThreetimes/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797426.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797426.html"/><content type="html">&lt;p&gt;#include &amp;lt;iostream&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;using namespace std;&lt;/p&gt;&#xD;
&lt;p&gt;bool verifySquenceOfBST(int squence[], int length)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;if (squence==NULL||length&amp;lt;=0)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;return false;&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;int root=squence[length-1];&lt;br /&gt;&amp;nbsp;int i=0;&lt;br /&gt;&amp;nbsp;for(; i&amp;lt;length-1; ++i)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;if (squence[i]&amp;gt;root)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;int j=i;&lt;br /&gt;&amp;nbsp;for (; j&amp;lt;length-1; ++j)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;if (squence[j]&amp;lt;root)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;bool left=true;&lt;br /&gt;&amp;nbsp;if (i&amp;gt;0)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;left=verifySquenceOfBST(squence, i);&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;bool right=true;&lt;br /&gt;&amp;nbsp;if (i&amp;lt;length-1)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;right=verifySquenceOfBST(squence, length-i-1);&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;return left&amp;amp;&amp;amp;right;&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;int main()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;int squence1[]={5, 7, 6, 9, 11, 10, 8};&lt;br /&gt;&amp;nbsp;int squence2[]={7, 4, 6, 5};&lt;/p&gt;&#xD;
&lt;p&gt;int length1=sizeof(squence1)/sizeof(int);&lt;br /&gt;&amp;nbsp;int length2=sizeof(squence2)/sizeof(int);&lt;/p&gt;&#xD;
&lt;p&gt;if (verifySquenceOfBST(squence1, length1))&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;"squence1 is BST"&amp;lt;&amp;lt;endl;&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;"squence1 is not BST"&amp;lt;&amp;lt;endl;&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;if (verifySquenceOfBST(squence2, length2))&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;"squence2 is BST"&amp;lt;&amp;lt;endl;&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;"squence2 is not BST"&amp;lt;&amp;lt;endl;&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;return 0;&lt;br /&gt;}&lt;/p&gt;&lt;img src="http://www.cnblogs.com/enterBeijingThreetimes/aggbug/1797426.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797426.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797359.html</id><title type="text">查找最小的k个元素</title><summary type="text">算法中使用到了堆，即stl中的multiset。#include &amp;lt;iostream&amp;gt;#include &amp;lt;vector&amp;gt;#include &amp;lt;set&amp;gt;using namespace std;typedef multiset&amp;lt;int, greater&amp;lt;int&amp;gt;&amp;gt; IntHeap;void FindKLeastNumbers(const vec...</summary><published>2010-08-11T07:25:00Z</published><updated>2010-08-11T07:25:00Z</updated><author><name>山径山精</name><uri>http://www.cnblogs.com/enterBeijingThreetimes/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797359.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797359.html"/><content type="html">&lt;p&gt;算法中使用到了堆，即stl中的multiset。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;#include &amp;lt;vector&amp;gt;&lt;br /&gt;#include &amp;lt;set&amp;gt;&lt;br /&gt;using namespace std;&lt;/p&gt;&#xD;
&lt;p&gt;typedef multiset&amp;lt;int, greater&amp;lt;int&amp;gt;&amp;gt; IntHeap;&lt;/p&gt;&#xD;
&lt;p&gt;void FindKLeastNumbers(&lt;br /&gt;&amp;nbsp;const vector&amp;lt;int&amp;gt;&amp;amp; data, &lt;br /&gt;&amp;nbsp;IntHeap&amp;amp; leastNumbers, &lt;br /&gt;&amp;nbsp;unsigned int k)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;leastNumbers.clear();&lt;/p&gt;&#xD;
&lt;p&gt;if (k==0||data.size()&amp;lt;k)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;return;&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;vector&amp;lt;int&amp;gt;::const_iterator iter=data.begin();&lt;br /&gt;&amp;nbsp;for (; iter!=data.end(); ++iter)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;if (leastNumbers.size()&amp;lt;k)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;leastNumbers.insert(*iter);&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;IntHeap::iterator iterFirst=leastNumbers.begin();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (*iter&amp;lt;*iterFirst)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;leastNumbers.erase(iterFirst);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;leastNumbers.insert(*iter);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;int main()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;vector&amp;lt;int&amp;gt; data;&lt;br /&gt;&amp;nbsp;data.push_back(7);&lt;br /&gt;&amp;nbsp;data.push_back(2);&lt;br /&gt;&amp;nbsp;data.push_back(8);&lt;br /&gt;&amp;nbsp;data.push_back(1);&lt;br /&gt;&amp;nbsp;data.push_back(5);&lt;br /&gt;&amp;nbsp;data.push_back(3);&lt;br /&gt;&amp;nbsp;data.push_back(6);&lt;br /&gt;&amp;nbsp;data.push_back(-4);&lt;/p&gt;&#xD;
&lt;p&gt;IntHeap leastNumbers;&lt;/p&gt;&#xD;
&lt;p&gt;FindKLeastNumbers(data, leastNumbers, 4);&lt;/p&gt;&#xD;
&lt;p&gt;IntHeap::iterator iter=leastNumbers.begin();&lt;br /&gt;&amp;nbsp;for (; iter!=leastNumbers.end(); ++iter)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;*iter&amp;lt;&amp;lt;'\t';&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;cout&amp;lt;&amp;lt;endl;&lt;/p&gt;&#xD;
&lt;p&gt;return 0;&lt;br /&gt;}&lt;/p&gt;&lt;img src="http://www.cnblogs.com/enterBeijingThreetimes/aggbug/1797359.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797359.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797294.html</id><title type="text">在二元树中查找和为某一值的所有路径</title><summary type="text">#include &amp;lt;iostream&amp;gt;#include &amp;lt;vector&amp;gt;using namespace std;struct BinaryTreeNode{int m_nValue;BinaryTreeNode* m_pLeft;BinaryTreeNode* m_pRight;};int count=0; //print controlvoid FindPath(Bina...</summary><published>2010-08-11T06:25:00Z</published><updated>2010-08-11T06:25:00Z</updated><author><name>山径山精</name><uri>http://www.cnblogs.com/enterBeijingThreetimes/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797294.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797294.html"/><content type="html">&lt;p&gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;#include &amp;lt;vector&amp;gt;&lt;br /&gt;using namespace std;&lt;/p&gt;&#xD;
&lt;p&gt;struct BinaryTreeNode&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;int m_nValue;&lt;br /&gt;&amp;nbsp;BinaryTreeNode* m_pLeft;&lt;br /&gt;&amp;nbsp;BinaryTreeNode* m_pRight;&lt;br /&gt;};&lt;/p&gt;&#xD;
&lt;p&gt;int count=0; //print control&lt;/p&gt;&#xD;
&lt;p&gt;void FindPath(&lt;br /&gt;&amp;nbsp;BinaryTreeNode* pTreeNode, &lt;br /&gt;&amp;nbsp;int expectedSum, &lt;br /&gt;&amp;nbsp;vector&amp;lt;int&amp;gt;&amp;amp; path, &lt;br /&gt;&amp;nbsp;int&amp;amp; currentSum)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;if (!pTreeNode)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;return;&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;currentSum+=pTreeNode-&amp;gt;m_nValue;&lt;br /&gt;&amp;nbsp;path.push_back(pTreeNode-&amp;gt;m_nValue);&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;bool isLeaf=!(pTreeNode-&amp;gt;m_pLeft)&amp;amp;&amp;amp;!(pTreeNode-&amp;gt;m_pRight);&lt;/p&gt;&#xD;
&lt;p&gt;if (currentSum==expectedSum &amp;amp;&amp;amp; isLeaf)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;vector&amp;lt;int&amp;gt;::iterator iter;&lt;br /&gt;&amp;nbsp;&amp;nbsp;for (iter=path.begin(); iter!=path.end(); iter++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;*iter&amp;lt;&amp;lt;'\t';&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;endl;&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;if (pTreeNode-&amp;gt;m_pLeft)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;FindPath(pTreeNode-&amp;gt;m_pLeft, expectedSum, path, currentSum);&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;if (pTreeNode-&amp;gt;m_pRight)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;FindPath(pTreeNode-&amp;gt;m_pRight, expectedSum, path, currentSum);&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;//when finish visiting a node and return to its parent node,&lt;br /&gt;&amp;nbsp;//should delete this node from the path and&lt;br /&gt;&amp;nbsp;//minus the node's value from the current sum&lt;br /&gt;&amp;nbsp;currentSum-=pTreeNode-&amp;gt;m_nValue;&lt;br /&gt;&amp;nbsp;path.pop_back();&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;void AddTree(BinaryTreeNode** T, int num)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;if (*T==NULL)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;*T=(BinaryTreeNode*)malloc(sizeof(BinaryTreeNode));&lt;br /&gt;&amp;nbsp;&amp;nbsp;(*T)-&amp;gt;m_nValue=num;&lt;br /&gt;&amp;nbsp;&amp;nbsp;(*T)-&amp;gt;m_pLeft=NULL;&lt;br /&gt;&amp;nbsp;&amp;nbsp;(*T)-&amp;gt;m_pRight=NULL;&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;else if ((*T)-&amp;gt;m_nValue&amp;gt;num)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;AddTree(&amp;amp;((*T)-&amp;gt;m_pLeft), num);&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;AddTree(&amp;amp;((*T)-&amp;gt;m_pRight), num);&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;void MidTraversal(BinaryTreeNode* T)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;if(T!=NULL)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;MidTraversal(T-&amp;gt;m_pLeft);&lt;br /&gt;&amp;nbsp;&amp;nbsp;count++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;if (count%5==0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;T-&amp;gt;m_nValue&amp;lt;&amp;lt;endl;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;T-&amp;gt;m_nValue&amp;lt;&amp;lt;"\t";&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;MidTraversal(T-&amp;gt;m_pRight);&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;int main()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;BinaryTreeNode* T=NULL;&lt;/p&gt;&#xD;
&lt;p&gt;AddTree(&amp;amp;T, 10);&lt;br /&gt;&amp;nbsp;AddTree(&amp;amp;T, 12);&lt;br /&gt;&amp;nbsp;AddTree(&amp;amp;T, 5);&lt;br /&gt;&amp;nbsp;AddTree(&amp;amp;T, 7);&lt;br /&gt;&amp;nbsp;AddTree(&amp;amp;T, 4);&lt;/p&gt;&#xD;
&lt;p&gt;cout&amp;lt;&amp;lt;"Mid reversal tree is:\n";&lt;br /&gt;&amp;nbsp;MidTraversal(T);&lt;/p&gt;&#xD;
&lt;p&gt;vector&amp;lt;int&amp;gt; path;&lt;br /&gt;&amp;nbsp;int sum=0;&lt;br /&gt;&amp;nbsp;FindPath(T, 22, path, sum);&lt;/p&gt;&#xD;
&lt;p&gt;return 0;&lt;br /&gt;}&lt;/p&gt;&lt;img src="http://www.cnblogs.com/enterBeijingThreetimes/aggbug/1797294.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797294.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797250.html</id><title type="text">求子数组的最大和</title><summary type="text">#include &amp;lt;iostream&amp;gt;using namespace std;bool FindGreatestSumOfSubArray(int *pData, unsigned int nLength, int &amp;amp;nGreatestSum){if (!pData||0==nLength){return false;}int nCurrentSum=nGreatestSum=...</summary><published>2010-08-11T05:34:00Z</published><updated>2010-08-11T05:34:00Z</updated><author><name>山径山精</name><uri>http://www.cnblogs.com/enterBeijingThreetimes/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797250.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797250.html"/><content type="html">&lt;p&gt;#include &amp;lt;iostream&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;using namespace std;&lt;/p&gt;&#xD;
&lt;p&gt;bool FindGreatestSumOfSubArray(int *pData, unsigned int nLength, int &amp;amp;nGreatestSum)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;if (!pData||0==nLength)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;return false;&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;int nCurrentSum=nGreatestSum=0;&lt;br /&gt;&amp;nbsp;for (unsigned int i=0; i&amp;lt;nLength; i++)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;nCurrentSum+=pData[i];&lt;/p&gt;&#xD;
&lt;p&gt;//if the sum is negative, discard it.&lt;br /&gt;&amp;nbsp;&amp;nbsp;if (nCurrentSum&amp;lt;0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;nCurrentSum=0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;if (nCurrentSum&amp;gt;nGreatestSum)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;nGreatestSum=nCurrentSum;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;//if all data are negative, find the greatest element in array&lt;br /&gt;&amp;nbsp;if (nGreatestSum==0)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;nGreatestSum=pData[0];&lt;br /&gt;&amp;nbsp;&amp;nbsp;for (unsigned int i=1; i&amp;lt;nLength; ++i)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (pData[i]&amp;gt;nGreatestSum)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nGreatestSum=pData[i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;return true;&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;int main()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;int data[]={1, -2, 3, 10, -4, 7, 2, -5};&lt;br /&gt;&amp;nbsp;int greatest=0;&lt;br /&gt;&amp;nbsp;unsigned int length=sizeof(data)/sizeof(int);&lt;br /&gt;&amp;nbsp;cout&amp;lt;&amp;lt;"length = "&amp;lt;&amp;lt;length&amp;lt;&amp;lt;endl;&lt;/p&gt;&#xD;
&lt;p&gt;if (FindGreatestSumOfSubArray(data, length, greatest))&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;"the greatest sum of the sub array is: "&amp;lt;&amp;lt;greatest&amp;lt;&amp;lt;endl;&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;for (int i=0; i&amp;lt;5; i++)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;i&amp;lt;&amp;lt;"\t";&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;cout&amp;lt;&amp;lt;endl;&lt;/p&gt;&#xD;
&lt;p&gt;for (int j=0; j&amp;lt;5; ++j)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;j&amp;lt;&amp;lt;"\t";&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;cout&amp;lt;&amp;lt;endl;&lt;/p&gt;&#xD;
&lt;p&gt;return 0;&lt;br /&gt;}&lt;/p&gt;&lt;img src="http://www.cnblogs.com/enterBeijingThreetimes/aggbug/1797250.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797250.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797233.html</id><title type="text">把二元查找树转变成排序的双向链表</title><summary type="text">#include &amp;lt;iostream&amp;gt;#include &amp;lt;time.h&amp;gt;#define MAX_NUM 10using namespace std;struct BSTreeNode {int m_nValue;BSTreeNode *m_pLeft;BSTreeNode *m_pRight;};int count=0;void AddTree(BSTreeNode** T...</summary><published>2010-08-11T04:59:00Z</published><updated>2010-08-11T04:59:00Z</updated><author><name>山径山精</name><uri>http://www.cnblogs.com/enterBeijingThreetimes/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797233.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797233.html"/><content type="html">&lt;p&gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;#include &amp;lt;time.h&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;#define MAX_NUM 10&lt;/p&gt;&#xD;
&lt;p&gt;using namespace std;&lt;/p&gt;&#xD;
&lt;p&gt;struct BSTreeNode &lt;br /&gt;{&lt;br /&gt;&amp;nbsp;int m_nValue;&lt;br /&gt;&amp;nbsp;BSTreeNode *m_pLeft;&lt;br /&gt;&amp;nbsp;BSTreeNode *m_pRight;&lt;br /&gt;};&lt;/p&gt;&#xD;
&lt;p&gt;int count=0;&lt;/p&gt;&#xD;
&lt;p&gt;void AddTree(BSTreeNode** T, int num)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;if (*T==NULL)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;*T=(BSTreeNode*)malloc(sizeof(BSTreeNode));&lt;br /&gt;&amp;nbsp;&amp;nbsp;(*T)-&amp;gt;m_nValue=num;&lt;br /&gt;&amp;nbsp;&amp;nbsp;(*T)-&amp;gt;m_pLeft=NULL;&lt;br /&gt;&amp;nbsp;&amp;nbsp;(*T)-&amp;gt;m_pRight=NULL;&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;else if ((*T)-&amp;gt;m_nValue&amp;gt;num)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;AddTree(&amp;amp;((*T)-&amp;gt;m_pLeft), num);&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;AddTree(&amp;amp;((*T)-&amp;gt;m_pRight), num);&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;void MidTraversal(BSTreeNode* T)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;if(T!=NULL)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;MidTraversal(T-&amp;gt;m_pLeft);&lt;br /&gt;&amp;nbsp;&amp;nbsp;count++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;if (count%5==0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;T-&amp;gt;m_nValue&amp;lt;&amp;lt;endl;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;T-&amp;gt;m_nValue&amp;lt;&amp;lt;"\t";&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;MidTraversal(T-&amp;gt;m_pRight);&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;void ConvertNode(BSTreeNode* pNode, BSTreeNode** pLastNodeInList)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;if (pNode==NULL)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;return;&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;BSTreeNode* pCurrent=pNode;&lt;/p&gt;&#xD;
&lt;p&gt;if (pCurrent-&amp;gt;m_pLeft!=NULL)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;ConvertNode(pCurrent-&amp;gt;m_pLeft, pLastNodeInList);&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;//Put the current node into the double-linked list&lt;br /&gt;&amp;nbsp;//pLastNodeInList&amp;lt;--pCurrent&lt;br /&gt;&amp;nbsp;//pLastNodeInList--&amp;gt;pCurrent&lt;br /&gt;&amp;nbsp;pCurrent-&amp;gt;m_pLeft=*pLastNodeInList;&lt;br /&gt;&amp;nbsp;if (*pLastNodeInList!=NULL)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;(*pLastNodeInList)-&amp;gt;m_pRight=pCurrent;&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;*pLastNodeInList=pCurrent;&lt;/p&gt;&#xD;
&lt;p&gt;if (pCurrent-&amp;gt;m_pRight!=NULL)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;ConvertNode(pCurrent-&amp;gt;m_pRight, pLastNodeInList);&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;void PrintList(BSTreeNode* L, int flag)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;BSTreeNode* p=L;&lt;br /&gt;&amp;nbsp;while (p!=NULL)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;count++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;if (count%5==0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;p-&amp;gt;m_nValue&amp;lt;&amp;lt;endl;&lt;br /&gt;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;p-&amp;gt;m_nValue&amp;lt;&amp;lt;"\t";&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;if (1==flag)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;p=p-&amp;gt;m_pRight;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;p=p-&amp;gt;m_pLeft;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;BSTreeNode* ConvertSolution(BSTreeNode* pHeadOfTree)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;BSTreeNode* pLastNodeInList=NULL;&lt;br /&gt;&amp;nbsp;ConvertNode(pHeadOfTree, &amp;amp;pLastNodeInList);&lt;/p&gt;&#xD;
&lt;p&gt;cout&amp;lt;&amp;lt;"Last node is: "&amp;lt;&amp;lt;pLastNodeInList-&amp;gt;m_nValue&amp;lt;&amp;lt;endl;&lt;br /&gt;&amp;nbsp;pLastNodeInList-&amp;gt;m_pRight=NULL;&lt;/p&gt;&#xD;
&lt;p&gt;cout&amp;lt;&amp;lt;"Revert list is:\n";&lt;br /&gt;&amp;nbsp;PrintList(pLastNodeInList, 2);&lt;/p&gt;&#xD;
&lt;p&gt;BSTreeNode* pHeadOfList=pLastNodeInList;&lt;br /&gt;&amp;nbsp;while(pHeadOfList&amp;amp;&amp;amp;pHeadOfList-&amp;gt;m_pLeft)&lt;br /&gt;&amp;nbsp;&amp;nbsp;pHeadOfList=pHeadOfList-&amp;gt;m_pLeft;&lt;br /&gt;&amp;nbsp;cout&amp;lt;&amp;lt;"Normal list is: \n";&lt;br /&gt;&amp;nbsp;PrintList(pHeadOfList, 1);&lt;/p&gt;&#xD;
&lt;p&gt;return pHeadOfList;&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;int main()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;BSTreeNode* T=NULL;&lt;br /&gt;&amp;nbsp;int num, i;&lt;/p&gt;&#xD;
&lt;p&gt;srand((unsigned int)time(NULL));&lt;br /&gt;&amp;nbsp;for (i=0; i&amp;lt;MAX_NUM; i++)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;num=rand()%100+1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;AddTree(&amp;amp;T, num);&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;cout&amp;lt;&amp;lt;"Mid reversal tree is:\n";&lt;br /&gt;&amp;nbsp;MidTraversal(T);&lt;/p&gt;&#xD;
&lt;p&gt;cout&amp;lt;&amp;lt;"\ndouble list is:\n";&lt;br /&gt;&amp;nbsp;PrintList(ConvertSolution(T), 1);&lt;/p&gt;&#xD;
&lt;p&gt;return 0;&lt;br /&gt;}&lt;/p&gt;&lt;img src="http://www.cnblogs.com/enterBeijingThreetimes/aggbug/1797233.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/11/1797233.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/10/1796778.html</id><title type="text">编写String类的构造函数，析构函数，赋值函数</title><summary type="text">#include &amp;lt;iostream&amp;gt;using namespace std;class String{public:String(const char* str=NULL);String(const String&amp;amp; other);~String(void);String &amp;amp; operator =(const String&amp;amp; other);const char*...</summary><published>2010-08-10T09:40:00Z</published><updated>2010-08-10T09:40:00Z</updated><author><name>山径山精</name><uri>http://www.cnblogs.com/enterBeijingThreetimes/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/10/1796778.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/10/1796778.html"/><content type="html">&lt;p&gt;#include &amp;lt;iostream&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;using namespace std;&lt;/p&gt;&#xD;
&lt;p&gt;class String&lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;&amp;nbsp;String(const char* str=NULL);&lt;br /&gt;&amp;nbsp;String(const String&amp;amp; other);&lt;br /&gt;&amp;nbsp;~String(void);&lt;br /&gt;&amp;nbsp;String &amp;amp; operator =(const String&amp;amp; other);&lt;br /&gt;&amp;nbsp;const char* getString() const;&lt;/p&gt;&#xD;
&lt;p&gt;private:&lt;br /&gt;&amp;nbsp;char* m_data; &lt;br /&gt;};&lt;/p&gt;&#xD;
&lt;p&gt;String::~String(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;delete [] m_data;&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;String::String(const char *str)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;if (str==NULL)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;m_data=new char[1];&lt;br /&gt;&amp;nbsp;&amp;nbsp;*m_data='\0';&lt;br /&gt;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;int length=strlen(str);&lt;br /&gt;&amp;nbsp;&amp;nbsp;m_data=new char[length+1];&lt;br /&gt;&amp;nbsp;&amp;nbsp;strcpy(m_data, str);&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;String::String(const String&amp;amp; other)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;int length=strlen(other.m_data);&lt;br /&gt;&amp;nbsp;m_data=new char[length+1];&lt;br /&gt;&amp;nbsp;strcpy(m_data, other.m_data);&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;String&amp;amp; String::operator=(const String&amp;amp; other)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;if (this==&amp;amp;other)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;return *this;&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;delete [] m_data;&lt;br /&gt;&amp;nbsp;int length=strlen(other.m_data);&lt;br /&gt;&amp;nbsp;m_data=new char[length+1];&lt;br /&gt;&amp;nbsp;strcpy(m_data, other.m_data);&lt;/p&gt;&#xD;
&lt;p&gt;return *this;&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;const char* String::getString() const&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;return m_data;&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;int main()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;String str("hello");&lt;br /&gt;&amp;nbsp;String str1(" meng");&lt;br /&gt;&amp;nbsp;String str2(str1);&lt;br /&gt;&amp;nbsp;String str3(" jun.");&lt;br /&gt;&amp;nbsp;String str4(str3);&lt;br /&gt;&amp;nbsp;String str5=str4;&lt;/p&gt;&#xD;
&lt;p&gt;cout&amp;lt;&amp;lt;str.getString()&amp;lt;&amp;lt;str2.getString()&amp;lt;&amp;lt;str5.getString()&amp;lt;&amp;lt;endl;&lt;/p&gt;&#xD;
&lt;p&gt;return 0;&lt;br /&gt;}&lt;/p&gt;&lt;img src="http://www.cnblogs.com/enterBeijingThreetimes/aggbug/1796778.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/10/1796778.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/10/1796472.html</id><title type="text">设计包含min函数的栈（源码）</title><summary type="text">采用两个双端队列实现，一个存数据，一个是辅助栈，存第一个栈的最小元素的地址，实现技巧在于辅助栈存放的是第一个栈的最小元素的地址，难度在于使用模板实现。#include &amp;lt;deque&amp;gt;#include &amp;lt;assert.h&amp;gt;#include &amp;lt;iostream&amp;gt;using namespace std;template &amp;lt;typename T&amp;gt;class ...</summary><published>2010-08-10T05:53:00Z</published><updated>2010-08-10T05:53:00Z</updated><author><name>山径山精</name><uri>http://www.cnblogs.com/enterBeijingThreetimes/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/10/1796472.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/10/1796472.html"/><content type="html">&lt;p&gt;采用两个双端队列实现，一个存数据，一个是辅助栈，存第一个栈的最小元素的地址，实现技巧在于辅助栈存放的是第一个栈的最小元素的地址，难度在于使用模板实现。&lt;/p&gt;&#xD;
&lt;p&gt;#include &amp;lt;deque&amp;gt;&lt;br /&gt;#include &amp;lt;assert.h&amp;gt;&lt;br /&gt;#include &amp;lt;iostream&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;using namespace std;&lt;/p&gt;&#xD;
&lt;p&gt;template &amp;lt;typename T&amp;gt;class CStackWithMin&lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;&amp;nbsp;CStackWithMin(void){}&lt;br /&gt;&amp;nbsp;virtual ~CStackWithMin(void){}&lt;/p&gt;&#xD;
&lt;p&gt;T&amp;amp; top(void);&lt;br /&gt;&amp;nbsp;const T&amp;amp;top(void)const;&lt;/p&gt;&#xD;
&lt;p&gt;void push(const T&amp;amp; value);&lt;br /&gt;&amp;nbsp;void pop(void);&lt;/p&gt;&#xD;
&lt;p&gt;const T&amp;amp; min(void) const;&lt;/p&gt;&#xD;
&lt;p&gt;const T&amp;amp; size(void) const;&lt;/p&gt;&#xD;
&lt;p&gt;private:&lt;br /&gt;&amp;nbsp;deque&amp;lt;T&amp;gt; m_data;//the element of the stack&lt;br /&gt;&amp;nbsp;deque&amp;lt;size_t&amp;gt; m_minIndex; //the index of minimum elements&lt;br /&gt;};&lt;/p&gt;&#xD;
&lt;p&gt;template&amp;lt;typename T&amp;gt; T&amp;amp; CStackWithMin&amp;lt;T&amp;gt;::top()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;return m_data.back();&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;template&amp;lt;typename T&amp;gt; const T&amp;amp; CStackWithMin&amp;lt;T&amp;gt;::top() const&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;return m_data.back();&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;template&amp;lt;typename T&amp;gt; void CStackWithMin&amp;lt;T&amp;gt;::push(const T&amp;amp; value)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;m_data.push_back(value);&lt;/p&gt;&#xD;
&lt;p&gt;if (m_minIndex.size()==0)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;m_minIndex.push_back(0);&lt;br /&gt;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;if(value&amp;lt;m_data[m_minIndex.back()])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_minIndex.push_back(m_data.size()-1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_minIndex.push_back(m_minIndex.back());&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;template&amp;lt;typename T&amp;gt; void CStackWithMin&amp;lt;T&amp;gt;::pop()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;m_data.pop_back();&lt;/p&gt;&#xD;
&lt;p&gt;m_minIndex.pop_back();&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;template&amp;lt;typename T&amp;gt;const T&amp;amp; CStackWithMin&amp;lt;T&amp;gt;::min()const&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;assert(m_data.size()&amp;gt;0);&lt;br /&gt;&amp;nbsp;assert(m_minIndex.size()&amp;gt;0);&lt;/p&gt;&#xD;
&lt;p&gt;return m_data[m_minIndex.back()];&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;template&amp;lt;typename T&amp;gt;const T&amp;amp; CStackWithMin&amp;lt;T&amp;gt;::size() const&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;assert(m_data.size()&amp;gt;0);&lt;br /&gt;&amp;nbsp;assert(m_minIndex.size()&amp;gt;0);&lt;/p&gt;&#xD;
&lt;p&gt;return m_data.size();&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;int main()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;CStackWithMin&amp;lt;int&amp;gt; cs;&lt;/p&gt;&#xD;
&lt;p&gt;cs.push(3);&lt;br /&gt;&amp;nbsp;cs.push(4);&lt;br /&gt;&amp;nbsp;cs.push(2);&lt;br /&gt;&amp;nbsp;cs.push(1);&lt;br /&gt;&amp;nbsp;cs.push(5);&lt;br /&gt;&amp;nbsp;cs.push(6);&lt;br /&gt;&amp;nbsp;cs.push(0);&lt;br /&gt;&amp;nbsp;cout&amp;lt;&amp;lt;"cs.size() = "&amp;lt;&amp;lt;cs.size()&amp;lt;&amp;lt;endl;&lt;br /&gt;&amp;nbsp;int len=cs.size();&lt;br /&gt;&amp;nbsp;for (int i=0; i&amp;lt;len; i++)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;"cs.min() = "&amp;lt;&amp;lt;cs.min()&amp;lt;&amp;lt;endl;&lt;br /&gt;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;"cs.top() = "&amp;lt;&amp;lt;cs.top()&amp;lt;&amp;lt;endl;&lt;br /&gt;&amp;nbsp;&amp;nbsp;cs.pop();&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;return 0;&lt;br /&gt;}&lt;/p&gt;&lt;img src="http://www.cnblogs.com/enterBeijingThreetimes/aggbug/1796472.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/10/1796472.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/09/1795971.html</id><title type="text">自己写的大整数乘法C++程序，请指正。</title><summary type="text">#include &amp;lt;iostream&amp;gt;using namespace std;int multi(const int a[], const int b[], int c[], const int len){for (int k=0; k&amp;lt;2*len-1; k++){for (int i=0; (i&amp;lt;k+1)&amp;amp;&amp;amp;(i&amp;lt;len); i++){if (k-i...</summary><published>2010-08-09T10:02:00Z</published><updated>2010-08-09T10:02:00Z</updated><author><name>山径山精</name><uri>http://www.cnblogs.com/enterBeijingThreetimes/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/09/1795971.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/09/1795971.html"/><content type="html">&lt;p&gt;#include &amp;lt;iostream&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;using namespace std;&lt;/p&gt;&#xD;
&lt;p&gt;int multi(const int a[], const int b[], int c[], const int len)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;for (int k=0; k&amp;lt;2*len-1; k++)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;for (int i=0; (i&amp;lt;k+1)&amp;amp;&amp;amp;(i&amp;lt;len); i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (k-i&amp;lt;len)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int temp=a[i]*b[k-i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c[k]+=temp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;"c["&amp;lt;&amp;lt;k&amp;lt;&amp;lt;"] = "&amp;lt;&amp;lt;c[k]&amp;lt;&amp;lt;endl;&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;return 0;&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;int out(int c[], const int len)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;for (int i=2*len-2; i&amp;gt;0; i--)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;if (c[i]&amp;gt;9)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;c[i-1]+=c[i]/10;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;c[i]=c[i]%10;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;return 0;&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;int main()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;const int a[]={1, 2, 3, 4, 5, 5, 1, 2, 3, 4};&lt;br /&gt;&amp;nbsp;const int b[]={6, 7, 8, 9, 0, 5, 1, 2, 3, 4};&lt;/p&gt;&#xD;
&lt;p&gt;static const int len = 9;&lt;br /&gt;&amp;nbsp;int c[2*len+2]={0};&lt;br /&gt;&amp;nbsp;multi(a, b, c, len+1);&lt;br /&gt;&amp;nbsp;out(c, len+1);&lt;/p&gt;&#xD;
&lt;p&gt;for(int i=0; i&amp;lt;2*len+1; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;c[i];&lt;br /&gt;&amp;nbsp;cout&amp;lt;&amp;lt;endl;&lt;/p&gt;&#xD;
&lt;p&gt;return 0;&lt;br /&gt;}&lt;/p&gt;&lt;img src="http://www.cnblogs.com/enterBeijingThreetimes/aggbug/1795971.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/09/1795971.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/04/1792099.html</id><title type="text">DLL中导出函数的两种方式(dllexport与.def文件)</title><summary type="text">DLL中导出函数的声明有两种方式：一种方式是：在函数声明中加上__declspec(dllexport)；另外一种方式是：采用模块定义(.def)文件声明，(.def)文件为链接器提供了有关被链接程序的导出、属性及其他方面的信息。方式一：在函数声明中加上__declspec(dllexport)/// 在动态链接库程序中/// 声明动态链接库(**.dll)的对外接口函数TestFuctionex...</summary><published>2010-08-04T05:31:00Z</published><updated>2010-08-04T05:31:00Z</updated><author><name>山径山精</name><uri>http://www.cnblogs.com/enterBeijingThreetimes/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/04/1792099.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/04/1792099.html"/><content type="html">&lt;p&gt;DLL中导出函数的声明有两种方式：&lt;/p&gt;&#xD;
&lt;p&gt;一种方式是：在函数声明中加上__declspec(dllexport)；&lt;br /&gt;另外一种方式是：采用模块定义(.def)文件声明，(.def)文件为链接器提供了有关被链接程序的导出、属性及其他方面的信息。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;font color="#ff0000"&gt;方式一：在函数声明中加上__declspec(dllexport)&lt;br /&gt;&lt;/font&gt;/// 在动态链接库程序中&lt;br /&gt;/// 声明动态链接库(**.dll)的对外接口函数TestFuction&lt;br /&gt;extern "C" __declspec(dllexport) int TestFuction(int nType,char *strPath,std::vector&amp;lt;string&amp;gt; &amp;amp;vecData)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; ////do anything here////&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; return 0;&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;/// 在外部希望调用动态链接库的程序中&lt;br /&gt;/// 加载动态链接库(**.dll)并调用其对外接口TestFuction&lt;br /&gt;void func()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&lt;wbr&gt; //typedef与函数TestFuction类型相同的函数指针为TESTDLL&lt;br /&gt;&amp;nbsp;&lt;wbr&gt; typedef int (_cdecl * TESTDLL)(int nType,char *strPath,std::vector&amp;lt;string&amp;gt; &amp;amp;vecData);&lt;br /&gt;&amp;nbsp;&lt;wbr&gt; HINSTANCE hmod;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt; //加载动态链接库**.dll&lt;br /&gt;&amp;nbsp;&lt;wbr&gt; hmod =::LoadLibrary(_TEXT("dll相对路径&lt;a href="http://www.cnblogs.com/enterBeijingThreetimes/admin/file://**.dll/"&gt;&lt;font color="#765f47"&gt;\\**.dll&lt;/font&gt;&lt;/a&gt;"));&lt;br /&gt;&amp;nbsp;&lt;wbr&gt; if(NULL == hmod)&lt;br /&gt;&amp;nbsp;&lt;wbr&gt; {&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; TRACE("加载**.dll失败");&lt;br /&gt;&amp;nbsp;&lt;wbr&gt; }&lt;br /&gt;&amp;nbsp;&lt;wbr&gt; //定义一个与函数TestFuction类型相同的函数指针lpproc&lt;br /&gt;&amp;nbsp;&lt;wbr&gt; TESTDLL lpproc;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt; //搜索**.dll中函数名为TestFuction的对外接口&lt;br /&gt;&amp;nbsp;&lt;wbr&gt; lpproc = (TESTDLL)GetProcAddress (hmod,"TestFuction");&lt;br /&gt;&amp;nbsp;&lt;wbr&gt; //如果搜索成功&lt;br /&gt;&amp;nbsp;&lt;wbr&gt; if(NULL != lpproc)&lt;br /&gt;&amp;nbsp;&lt;wbr&gt; {&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; int nType = 0;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; char* strPath = "Data";&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; std::vector&amp;lt;string&amp;gt; vecData;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; //通过函数指针lpproc调用**.dll的接口函数TestFuction&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; int nResult = (*lpproc)(nType,strPath,vecData);&lt;br /&gt;&amp;nbsp;&lt;wbr&gt; }&lt;br /&gt;&amp;nbsp;&lt;wbr&gt; //...&lt;br /&gt;&amp;nbsp;&lt;wbr&gt; //在恰当的时候释放动态链接库**.dll&lt;br /&gt;&amp;nbsp;&lt;wbr&gt; FreeLibrary(hmod);&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&lt;font color="#ff0000"&gt;方式二：采用模块定义(.def)文件声明&lt;/font&gt;&lt;br /&gt;首先创建 一个DLL程序(DllTestDef)&lt;br /&gt;在*.cpp中&lt;br /&gt;int __stdcall Add(int numa, int numb)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; return (numa + numb);&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;int __stdcall Sub(int numa, int numb)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; return (numa - numb);&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;然后创建一个.def的文件，在里面加上&lt;/p&gt;&#xD;
&lt;p&gt;;DllTestDef.lib : 导出DLL函数&lt;br /&gt;;作者：----&lt;br /&gt;LIBRARY DllTestDef&lt;br /&gt;EXPORTS&lt;br /&gt;Add @ 1&lt;br /&gt;Sub @ 2&lt;/p&gt;&#xD;
&lt;p&gt;最后创建一个测试程序：.cpp文件如下：&lt;br /&gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;#include &amp;lt;windows.h&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;using namespace std;&lt;/p&gt;&#xD;
&lt;p&gt;typedef int (__stdcall *FUN)(int, int);&lt;br /&gt;HINSTANCE hInstance;&lt;br /&gt;FUN&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; fun;&lt;/p&gt;&#xD;
&lt;p&gt;int main()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; hInstance = LoadLibrary("DLLTestDef.dll");&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; if(!hInstance)&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; cout &amp;lt;&amp;lt; "Not Find this Dll" &amp;lt;&amp;lt; endl;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; fun = (FUN)GetProcAddress(hInstance, MAKEINTRESOURCE(1));&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; if (!fun)&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; {&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; cout &amp;lt;&amp;lt; "not find this fun" &amp;lt;&amp;lt; endl;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; }&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; cout &amp;lt;&amp;lt; fun(1, 2) &amp;lt;&amp;lt; endl;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; FreeLibrary(hInstance);&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; return 0;&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;说明：&lt;br /&gt;&lt;font color="#ff0000"&gt;.def文件的规则为：&lt;/font&gt;&lt;/p&gt;&#xD;
&lt;p&gt;(1)LIBRARY语句说明.def文件相应的DLL；&lt;/p&gt;&#xD;
&lt;p&gt;(2)EXPORTS语句后列出要导出函数的名称。可以在.def文件中的导出函数名后加@n，表示要导出函数的序号为n（在进行函数调用时，这个序号将发挥其作用）；&lt;/p&gt;&#xD;
&lt;p&gt;(3).def 文件中的注释由每个注释行开始处的分号 (;) 指定，且注释不能与语句共享一行。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;font color="#ff0000"&gt;(4)使用__declspec(dllexport)和使用.def文件是有区别的。&lt;/font&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如果你的DLL是提供给VC用户使用的，你只需要把编译DLL时产生的.lib提供给用户，&lt;br /&gt;它可以很轻松地调用你的DLL。但是如果你的DLL是供VB、PB、Delphi用户使用的，那么会产生一个小麻烦。&lt;br /&gt;因为VC++编译器对于__declspec(dllexport)声明的函数会进行名称转换，如下面的函数：&lt;br /&gt;__declspec(dllexport) int __stdcall Add()&lt;br /&gt;会转换为&lt;a href="&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#58;&amp;#65;&amp;#100;&amp;#100;&amp;#64;&amp;#48;"&gt;&lt;font color="#765f47"&gt;Add@0&lt;/font&gt;&lt;/a&gt;，这样你在VB中必须这样声明：&lt;br /&gt;Declare Function Add Lib "DLLTestDef.dll" Alias "&lt;a href="&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#58;&amp;#65;&amp;#100;&amp;#100;&amp;#64;&amp;#48;"&gt;&lt;font color="#765f47"&gt;Add@0&lt;/font&gt;&lt;/a&gt;" () As Long&lt;br /&gt;@后面的数由于参数类型不同而可能不同。这显然不太方便。所以如果要想避免这种转换，就要使用.def文件方式导出函数了。&lt;/p&gt;&#xD;
&lt;h2 id="t_4b44e1c00100cols" &gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/enterBeijingThreetimes/aggbug/1792099.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/04/1792099.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/07/26/1785133.html</id><title type="text">Adding vertical guides to the Visual Studio text editor</title><summary type="text">Adding vertical guides to the Visual Studio text editorSomething that I&amp;#8217;ve done and liked since VS2005, has been to add vertical guides to the VS text editor. For example: I like putting them at...</summary><published>2010-07-26T03:43:00Z</published><updated>2010-07-26T03:43:00Z</updated><author><name>山径山精</name><uri>http://www.cnblogs.com/enterBeijingThreetimes/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/07/26/1785133.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/07/26/1785133.html"/><content type="html">&lt;h4 id="subjcns!587F478B9240C01E!644" &gt;Adding vertical guides to the Visual Studio text editor&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div id="msgcns!587F478B9240C01E!644" &gt;&#xD;
&lt;p&gt;Something that I&amp;#8217;ve done and liked since VS2005, has been to add vertical guides to the VS text editor. For example:&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://08gpqq.bay.livefilestore.com/y1mKy7ji1dYzXydQGQ6FruI_Pcu3FHVHmwzA15IlhQPN4fn5V39GfmrYKaU-I0ynQCEoBkgCNwkNtsS0weJepyzk2OamjyFUv6G0fzQk5xTxt6OT2ujxl86Ct6lf2MFUIeYSxfCCQFhIqvweRAMBrkPVg/image[9].png" width="691" height="238" /&gt; &lt;/p&gt;&#xD;
&lt;p&gt;I like putting them at the first several tab stops as it helps keep track of indenting. I also have one at position 79 so I know where to wrap lines and comments. So, how do you do this? Well, it&amp;#8217;s a registry entry. Here are the entries for each version of Visual Studio:&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Visual Studio 2005:&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&#xD;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;Windows Registry Editor Version 5.00 &lt;/font&gt;&#xD;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\&lt;strong&gt;8.0&lt;/strong&gt;\Text Editor]&lt;br /&gt;"Guides"="RGB(230,230,255) 4, 8, 12, 16, 20, 24, 28, 32, 79"&lt;/font&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Visual Studio 2008:&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&#xD;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;Windows Registry Editor Version 5.00 &lt;/font&gt;&#xD;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\&lt;strong&gt;9.0&lt;/strong&gt;\Text Editor]&lt;br /&gt;"Guides"="RGB(230,230,255) 4, 8, 12, 16, 20, 24, 28, 32, 79"&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Visual Studio 2010:&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&#xD;
&lt;p&gt;Bad news, here. Since the text editor is VS2010 is now a WPF control &amp;#8211; this same registry entry doesn&amp;#8217;t have any affect. If I find the equivalent of this for VS2010, I will try to post it up here.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;UPDATE (4/24/2010):&lt;/font&gt;&lt;/strong&gt; I found this was reported for VS2010, but it will not be implemented. Although there is a link in there of how you might be able to write your own extension that does this. See: &lt;/em&gt;&lt;em&gt;&lt;a href="https://connect.microsoft.com/VisualStudio/feedback/details/490930/text-editor-guides"&gt;&lt;font color="#0066a7"&gt;https://connect.microsoft.com/VisualStudio/feedback/details/490930/text-editor-guides&lt;/font&gt;&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;em&gt;Meanwhile, I just found that on the Visual Studio Gallery, someone implemented this. It's just a quick download and the same registry entry (exception "10.0" vs "8.0", below)&amp;nbsp;works!!!&lt;/em&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Download: &lt;/strong&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/0fbf2878-e678-4577-9fdb-9030389b338c"&gt;&lt;strong&gt;&lt;font color="#0066a7"&gt;http://visualstudiogallery.msdn.microsoft.com/en-us/0fbf2878-e678-4577-9fdb-9030389b338c&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&#xD;
&lt;p&gt;You can either go modify the registry by hand (WARNING: standard &amp;#8220;do not modify the registry!&amp;#8221; warnings apply) &amp;#8211; or you can copy/paste the contents above into a text file and name it something like &amp;#8220;VerticalGuides.reg&amp;#8221; &amp;#8211; then double-click it to run it.&lt;/p&gt;&#xD;
&lt;p&gt;Also, the RGB is what you might expect &amp;#8211; this is what sets the color of the line. So (255,0,0) is all red, (0,255,0) is all green, and (0,0,255) is all blue &amp;#8211; and combinations of those are somewhere in-between. After that, the comma-separated list is a list of the vertical positions where you want the actual lines.&lt;/p&gt;&#xD;
&lt;p&gt;Lastly, to remove the guides, just create another file called &amp;#8220;RemoveVerticalGuides.reg&amp;#8221;, paste the contents below and double-click to run:&lt;/p&gt;&#xD;
&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&#xD;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;Windows Registry Editor Version 5.00 &lt;/font&gt;&#xD;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\Text Editor]&lt;br /&gt;"Guides"=-&lt;/font&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&#xD;
&lt;p&gt;Setting a value to &amp;#8220;-&amp;#8220; in a .reg file deletes that entry. Anyhow, I find this very useful so I thought I would post it.&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/enterBeijingThreetimes/aggbug/1785133.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/07/26/1785133.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
