﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Impossible is nothing-随笔分类-STL/BOOST</title><link>http://www.cppblog.com/apollo/category/1248.html</link><description>　　爱过知情重醉过知酒浓
　　花开花谢终是空
　　缘份不停留像春风来又走
　　女人如花花似梦</description><language>zh-cn</language><lastBuildDate>Tue, 20 May 2008 07:22:39 GMT</lastBuildDate><pubDate>Tue, 20 May 2008 07:22:39 GMT</pubDate><ttl>60</ttl><item><title>近日复习记录</title><link>http://www.cppblog.com/apollo/archive/2006/06/28/9118.html</link><dc:creator>笑笑生</dc:creator><author>笑笑生</author><pubDate>Wed, 28 Jun 2006 08:12:00 GMT</pubDate><guid>http://www.cppblog.com/apollo/archive/2006/06/28/9118.html</guid><wfw:comment>http://www.cppblog.com/apollo/comments/9118.html</wfw:comment><comments>http://www.cppblog.com/apollo/archive/2006/06/28/9118.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/apollo/comments/commentRss/9118.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/apollo/services/trackbacks/9118.html</trackback:ping><description><![CDATA[
		<p>1.使用max/min时可以给一个比较函数指针。<br />#include &lt;algorithm&gt;<br />using namespace std;</p>
		<p>/* function that compares two pointers by comparing the values to which they point<br /> */<br />bool int_ptr_less (int* a, int* b)<br />{<br />    return *a &lt; *b;<br />}</p>
		<p>int main()<br />{<br />    int x = 17;<br />    int y = 42;<br />    int* px = &amp;x;<br />    int* py = &amp;y;<br />    int* pmax;</p>
		<p>    // call max() with special comparison function<br />    pmax = max (px, py, int_ptr_less);<br />    //...<br />}<br />这是源代码(MSVC7):<br />template&lt;class _Ty,<br /> class _Pr&gt; inline<br /> const _Ty&amp; _MAX(const _Ty&amp; _Left, const _Ty&amp; _Right, _Pr _Pred)<br /> { // return larger of _Left and _Right using _Pred<br /> return (_Pred(_Left, _Right) ? _Right : _Left);<br /> }</p>
		<p>2.设置boolalpha可以让流输出bool值的字符串形式</p>
		<p> cout &lt;&lt; boolalpha ;<br /> bool b = true;<br /> cout &lt;&lt; b &lt;&lt;"*********"&lt;&lt;!b &lt;&lt; endl;<br />结果:<br />true*********false<br />3。一下代码可以测试你的系统各类型的范围<br />#include &lt;iostream&gt;<br />#include &lt;limits&gt;<br />#include &lt;string&gt;<br />using namespace std;</p>
		<p>int main()<br />{<br />   // use textual representation for bool<br />   cout &lt;&lt; boolalpha;</p>
		<p>   // print maximum of integral types<br />   cout &lt;&lt; "max(short): " &lt;&lt; numeric_limits&lt;short&gt;::max() &lt;&lt; endl;<br />   cout &lt;&lt; "max(int):   " &lt;&lt; numeric_limits&lt;int&gt;::max() &lt;&lt; endl;<br />   cout &lt;&lt; "max(long):  " &lt;&lt; numeric_limits&lt;long&gt;::max() &lt;&lt; endl;<br />   cout &lt;&lt; endl;</p>
		<p>   // print maximum of floating-point types<br />   cout &lt;&lt; "max(float):       "<br />        &lt;&lt; numeric_limits&lt;float&gt;::max() &lt;&lt; endl;<br />   cout &lt;&lt; "max(double):      "<br />        &lt;&lt; numeric_limits&lt;double&gt;::max() &lt;&lt; endl;<br />   cout &lt;&lt; "max(long double): "<br />        &lt;&lt; numeric_limits&lt;long double&gt;::max() &lt;&lt; endl;<br />   cout &lt;&lt; endl;</p>
		<p>   // print whether char is signed<br />   cout &lt;&lt; "is_signed(char): "<br />        &lt;&lt; numeric_limits&lt;char&gt;::is_signed &lt;&lt; endl;<br />   cout &lt;&lt; endl;</p>
		<p>   // print whether numeric limits for type string exist<br />   cout &lt;&lt; "is_specialized(string): "<br />        &lt;&lt; numeric_limits&lt;string&gt;::is_specialized &lt;&lt; endl;<br />}</p>
<img src ="http://www.cppblog.com/apollo/aggbug/9118.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/apollo/" target="_blank">笑笑生</a> 2006-06-28 16:12 <a href="http://www.cppblog.com/apollo/archive/2006/06/28/9118.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>从输入流中读入一行</title><link>http://www.cppblog.com/apollo/archive/2006/04/24/6152.html</link><dc:creator>笑笑生</dc:creator><author>笑笑生</author><pubDate>Mon, 24 Apr 2006 04:13:00 GMT</pubDate><guid>http://www.cppblog.com/apollo/archive/2006/04/24/6152.html</guid><wfw:comment>http://www.cppblog.com/apollo/comments/6152.html</wfw:comment><comments>http://www.cppblog.com/apollo/archive/2006/04/24/6152.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/apollo/comments/commentRss/6152.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/apollo/services/trackbacks/6152.html</trackback:ping><description><![CDATA[一直没找到怎么让cin中读取一行输入的做法，今天看&lt;&lt;the c++ programming language&gt;&gt;，其中一个例子中要这样的一个函数getline(输入流,接收变量):<br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 128, 128);">1</span><span style="color: rgb(0, 0, 0);">void f()<br /></span><span style="color: rgb(0, 128, 128);">2</span> <span style="color: rgb(0, 0, 0);">{<br /></span><span style="color: rgb(0, 128, 128);">3</span>      <span style="color: rgb(0, 0, 0);"></span><span style="color: rgb(0, 0, 255);">string</span><span style="color: rgb(0, 0, 0);"> str;<br /></span><span style="color: rgb(0, 128, 128);">4</span><span style="color: rgb(0, 0, 0);">    cout </span><span style="color: rgb(0, 0, 0);">&lt;&lt;</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">please enter your name\n</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">;<br /></span><span style="color: rgb(0, 128, 128);">5</span><span style="color: rgb(0, 0, 0);">    getline(cin,str);<br /></span><span style="color: rgb(0, 128, 128);">6</span>     <span style="color: rgb(0, 0, 0);">cout </span><span style="color: rgb(0, 0, 0);">&lt;&lt;</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Hello,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">&lt;&lt;</span><span style="color: rgb(0, 0, 0);"> str </span><span style="color: rgb(0, 0, 0);">&lt;&lt;</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">!\n</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">;<br /></span><span style="color: rgb(0, 128, 128);">7</span> <span style="color: rgb(0, 0, 0);">}</span></div><br />

和大家分享一下<img src ="http://www.cppblog.com/apollo/aggbug/6152.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/apollo/" target="_blank">笑笑生</a> 2006-04-24 12:13 <a href="http://www.cppblog.com/apollo/archive/2006/04/24/6152.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>继续贴面试题目</title><link>http://www.cppblog.com/apollo/archive/2006/04/12/5427.html</link><dc:creator>笑笑生</dc:creator><author>笑笑生</author><pubDate>Wed, 12 Apr 2006 14:45:00 GMT</pubDate><guid>http://www.cppblog.com/apollo/archive/2006/04/12/5427.html</guid><wfw:comment>http://www.cppblog.com/apollo/comments/5427.html</wfw:comment><comments>http://www.cppblog.com/apollo/archive/2006/04/12/5427.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/apollo/comments/commentRss/5427.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/apollo/services/trackbacks/5427.html</trackback:ping><description><![CDATA[今天早上的面试题9道，比较难，向牛人请教，国内的一牛公司，坐落在北京北四环某大厦：<br />
1、线形表a、b为两个有序升序的线形表，编写一程序，使两个有序线形表合并成一个有序升序线形表h；<br />
2、运用四色定理，为N个局域举行配色，颜色为1、2、3、4四种，另有数组adj[][N]，如adj[i][j]=1则表示i区域与j区域相邻，数组color[N]，如color[i]=1,表示i区域的颜色为1号颜色。<br />
3、用递归算法判断数组a[N]是否为一个递增数组。<br />
4、编写算法，从10亿个浮点数当中，选出其中最大的10000个。<br />
5、编写一unix程序，防止僵尸进程的出现.<br /><br />
同学的4道面试题，应聘的职位是搜索引擎工程师，后两道超级难，（希望大家多给一些算发）<br />
1.给两个数组和他们的大小，还有一动态开辟的内存，求交集，把交集放到动态内存dongtai，并且返回交集个数<br />
long jiaoji(long* a[],long b[],long* alength,long blength,long* dongtai[])<br />
2.单连表的建立，把'a'--'z'26个字母插入到连表中，并且倒叙，还要打印！<br />
3.可怕的题目终于来了<br />
象搜索的输入信息是一个字符串，统计300万输入信息中的最热门的前十条，我们每次输入的一个字符串为不超过255byte,内存使用只有1G,<br />
请描述思想，写出算发（c语言），空间和时间复杂度，<br />
4.国内的一些帖吧，如baidu,有几十万个主题，假设每一个主题都有上亿的跟帖子，怎么样设计这个系统速度最好，请描述思想，写出算发（c语言），空间和时间复杂度，<img src ="http://www.cppblog.com/apollo/aggbug/5427.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/apollo/" target="_blank">笑笑生</a> 2006-04-12 22:45 <a href="http://www.cppblog.com/apollo/archive/2006/04/12/5427.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sap的几道笔试题目(转)</title><link>http://www.cppblog.com/apollo/archive/2006/04/12/5426.html</link><dc:creator>笑笑生</dc:creator><author>笑笑生</author><pubDate>Wed, 12 Apr 2006 14:35:00 GMT</pubDate><guid>http://www.cppblog.com/apollo/archive/2006/04/12/5426.html</guid><wfw:comment>http://www.cppblog.com/apollo/comments/5426.html</wfw:comment><comments>http://www.cppblog.com/apollo/archive/2006/04/12/5426.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/apollo/comments/commentRss/5426.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/apollo/services/trackbacks/5426.html</trackback:ping><description><![CDATA[1 下面程序有什么错误：<br />
class base{ <br />
 private:  int i; <br />
 public:   base(int x){i=x;} <br />
}; <br />
class derived: public base{ <br />
 private:  int i; <br />
 public:   derived(int x, int y) {i=x;} <br />
           void printTotal() {int total = i+base::i;} <br />
}; <br /><br /><br /><br />
2. Assume you have a class like <br /><br />
class erp <br />
{ <br />
   HR* m_hr; <br />
   FI* m_fi; <br />
public: <br />
   erp() <br />
   { <br />
       m_hr = new HR(); <br />
       m_fi = new FI(); <br />
   } <br />
   ~erp() <br />
   { <br />
   } <br />
}; <br /><br />
if "new FI()" failed in the constructor, how can you detect this problem and <br />
release the properly allocated member pointer m_hr? <br /><br />
3. Check the class and variable definition below: <br /><br />
#include &lt;iostream&gt; <br />
#include &lt;complex&gt; <br />
using namespace std; <br />
class Base <br />
{ <br />
public: <br />
   Base() { cout&lt;&lt;"Base-ctor"&lt;&lt;endl; } <br />
   ~Base() { cout&lt;&lt;"Base-dtor"&lt;&lt;endl; } <br />
   virtual void f(int) { cout&lt;&lt;"Base::f(int)"&lt;&lt;endl; } <br />
   virtual void f(double) {cout&lt;&lt;"Base::f(double)"&lt;&lt;endl; } <br />
   virtual void g(int i = 10) {cout&lt;&lt;"Base::g()"&lt;&lt;i&lt;&lt;endl; } <br />
}; <br /><br />
class Derived: public Base <br />
{ <br />
public: <br />
   Derived() { cout&lt;&lt;"Derived-ctor"&lt;&lt;endl; } <br />
   ~Derived() { cout&lt;&lt;"Derived-dtor"&lt;&lt;endl; } <br />
   void f(complex&lt;double&gt;) { cout&lt;&lt;"Derived::f(complex)"&lt;&lt;endl; } <br />
   virtual void g(int i = 20) {cout&lt;&lt;"Derived::g()"&lt;&lt;i&lt;&lt;endl; } <br />
}; <br /><br />
Base b; <br />
Derived d; <br /><br />
Base* pb = new Derived; <br />
Select the correct one from the four choices: <br />
Cout&lt;&lt;sizeof(Base)&lt;&lt;endl; <br />
A. 4    B.32    C.20    D.Platform-dependent <br />
Cout&lt;&lt;sizeof(Base)&lt;&lt;endl; <br />
A. 4    B.8 C.36    D.Platform-dependent <br />
pb-&gt;f(1.0); <br />
A.Derived::f(complex)   B.Base::f(double) <br />
pb-&gt;g(); <br />
A.Base::g() 10      B.Base::g() 20 <br />
C.Derived::g() 10   D.Derived::g() 20 <br /><br />
4.Implement the simplest singleton pattern(initialize if necessary). <br /><br />
5.Name three sort algorithms you are familiar with. Write out the correct <br />
order by the average time complexity. <br /><br />
6.Write code to sort a duplex direction linklist. The node T has overridden <br />
the comparision operators. <br /><br /><br />
7.Below is usual way we find one element in an array: <br /><br />
const int *find1(const int* array, int n, int x) <br />
{ <br />
   const int* p = array; <br />
   for(int i = 0; i &lt; n; i++) <br />
   { <br />
       if(*p == x) <br />
       { <br />
           return p; <br />
       } <br />
       ++p; <br />
   } <br />
   return 0; <br />
} <br /><br />
In this case we have to bear the knowledge of value type "int", the size of <br />
array, even the existence of an array. Would you re-write it using template <br />
to eliminate all these dependencies?<img src ="http://www.cppblog.com/apollo/aggbug/5426.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/apollo/" target="_blank">笑笑生</a> 2006-04-12 22:35 <a href="http://www.cppblog.com/apollo/archive/2006/04/12/5426.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>