??xml version="1.0" encoding="utf-8" standalone="yes"?>久久亚洲国产成人影院,人人狠狠综合88综合久久,99久久精品无码一区二区毛片 http://www.shnenglu.com/zhgw01/zh-cnThu, 08 May 2025 17:23:31 GMTThu, 08 May 2025 17:23:31 GMT60腾讯面试中一道题http://www.shnenglu.com/zhgw01/archive/2009/04/16/80180.htmlapacsapacsThu, 16 Apr 2009 12:39:00 GMThttp://www.shnenglu.com/zhgw01/archive/2009/04/16/80180.htmlhttp://www.shnenglu.com/zhgw01/comments/80180.htmlhttp://www.shnenglu.com/zhgw01/archive/2009/04/16/80180.html#Feedback10http://www.shnenglu.com/zhgw01/comments/commentRss/80180.htmlhttp://www.shnenglu.com/zhgw01/services/trackbacks/80180.html题目Q?分钟内用户上U的数目?0万,如果用户?分钟内重复上U,q他发警告Q问如何设计Q?br>
考虑Q要判断用户是否?分内重复上线Q那么至要Q也只需要)保存距当前时?分钟内的d用户的信息(只要单的IDQ?br>           从这个开始出发,需要考虑的问题ؓ2个:
           1.如何在迅速判断用h否在保存的数据中 Q这个理所当然想道用hashQ?br>           2. 如果把过期的数据删掉  Q这个就惛_l护一个时间链表,把到期的通过链表来删除)


q个是半q前腾讯面试的时候碰到的题目Q当时觉得很难,今天走在路上H然惌vQ想了想Q突然想到这U方法,也许不是最好,但至解决了Q也了解了一件事

apacs 2009-04-16 20:39 发表评论
]]>
内存寚w,little endian 和big endianhttp://www.shnenglu.com/zhgw01/archive/2008/10/27/65219.htmlapacsapacsMon, 27 Oct 2008 09:17:00 GMThttp://www.shnenglu.com/zhgw01/archive/2008/10/27/65219.htmlhttp://www.shnenglu.com/zhgw01/comments/65219.htmlhttp://www.shnenglu.com/zhgw01/archive/2008/10/27/65219.html#Feedback0http://www.shnenglu.com/zhgw01/comments/commentRss/65219.htmlhttp://www.shnenglu.com/zhgw01/services/trackbacks/65219.html
class Test
{
publicQ?br> short int a;
 
int b;
 
char c[5];
public:
 Test():b(0x
1234),a(b){
  c[
0]='h';
  c[
1]='e';
  c[
2]='l';
  c[
3]='l';
  c[
4]='o'//我是l对q里应该赋gؓ'\0'
}

}


int main()
{
  Test t;
  cout
<<a<<endl;
  cout
<<b<<endl;
  cout
<<sizeof(t)<<endl;
  
char* p=(char*)&t;
  cout
<<*(p+8)<<endl;
}

sizeof 那里考的是内存寚w的问题,short int 的变量必M??的开始,int必须从模4? 的开始,char必须从模1?的开始,而整个Test依照它的成员中最大的Q这里就是intQ也是Test的必M??的开始,而且它必d4的倍数?br>Z满int的条Ӟshort int后要填充QpaddingQ两个字节,Z满Test的条Ӟchar[5]后必d?个字节,所以d?+2+4+5+3=16个字?br>具体的内存对齐可以参考如?br>英文Q?a >http://www.chinaitpower.com/2005September/2005-09-13/206312.html
中文Q?a >http://blog.ednchina.com/jasony/92132/Message.aspx
q样*(p+8)也就很容易了解了Q蟩q前?个字节,即short int ?个,填充?个,以及int?个,最后蟩Cc[0]

little endian ?big endian

当一个变量占多个字节Ӟ如何排列q些字节׃生出了little endian和big endian的区?br>little endian: 把低字节攑֜内存的低?(The most significant byte is on the right end of a word)
big endian: 把低字节攑֜内存的高?(The most significant byte is on the left end of a word)
举个例子Q?br>     假设从地址0x00000000开始的一个字中保存有数据0x1234abcd,那么在两U不同的内存序的机器上从字节的角度ȝ的话分别表示?
       1)little endian:在内存中的存N序是0x00000000-0xcd,0x00000001-0xab,0x00000002-0x34,0x00000003-0x12
       2)big  endian:在内存中的存N序是0x00000000-0x12,0x00000001-0x34,0x00000002-0xab,0x00000003-0xcd


在构造函C的Test():b(0x1234),a(b)看v来有问题Q本来想q应该涉及到little endian和big endian的问题,不过在vs2005里调试了一下,发现׃a比b先声明,所以实际上时a先初始化Q也是a(b)q个语句先运行,׃q时候bq没初始化,a的值就是一个随机数Q相对于不同的运行来_Q接着b再初始化为正|但是q时候已l无法改变a的g


apacs 2008-10-27 17:17 发表评论
]]>
static ?externhttp://www.shnenglu.com/zhgw01/archive/2008/10/20/64498.htmlapacsapacsMon, 20 Oct 2008 07:42:00 GMThttp://www.shnenglu.com/zhgw01/archive/2008/10/20/64498.htmlhttp://www.shnenglu.com/zhgw01/comments/64498.htmlhttp://www.shnenglu.com/zhgw01/archive/2008/10/20/64498.html#Feedback0http://www.shnenglu.com/zhgw01/comments/commentRss/64498.htmlhttp://www.shnenglu.com/zhgw01/services/trackbacks/64498.htmlstatic的作用有2个,一个是控制名字的可见性,一个是控制生存?br>
1.控制名字的可见?br>q时候是跟extern相对应的Q作用与文g作用域(file scope)内的所有名字(变量名或函数名)Q其它定义在函数内或cd的变量名或函数名都不h文g作用域?br>一般情况下Q当你定义了一个全局范围内变量或函数名的时候,默认的是externQ如在下面的file1.cpp
//file1.cpp
int a=1;  //完整的应该是extern int a=1;但extern是缺省的

void f() //同上一Pq里也是定义
{

}

那么在file2.cpp中你不能再声明a跟fQ否则会引v名字冲突Q当你想要用file1.cpp中的a跟fӞ可以如下
extern int a; //不运行赋|q里只是声明,不可以省去externQ否则编译器会认为是重定?/span>

void f(); //同样是声明,而且对函数而言Q可以省去extern

   extern int bQ?Q?/q里是定?/span>
q样可以在file2.cpp中用a跟f?br>
反过来,你在文g作用域范围内定义了一个名字,你不希望被其它文件引用,q时候就要在前面加上staticQ此时这个变量具有internal linkageQ它不能被其它文件引用,同时在其它文件中声明同名变量不会认ؓ有冲H(因ؓstatic 使得名字只在本文件内可见Q?br>
2.控制生存?br>
static 变量同global 变量一P攑֜static存储区,只有当程序运行结束时Q这些变量才会消?br>
当static变量定义在函CӞ它仅在该函数内可见,当每ơ函数调用完Q这个变量的值都会保留下?br>
当static变量定义在类当中Ӟq个变量同cȝ对象无关Q真个类只有一个该变量的副本,不过它定义了多少个对象,而且Ҏ变量的改变可以只通过cL改变Q该变量的变化对所有同cȝ对象是可见的




apacs 2008-10-20 15:42 发表评论
]]>
Handle Class ?Interface Classhttp://www.shnenglu.com/zhgw01/archive/2008/10/20/64493.htmlapacsapacsMon, 20 Oct 2008 07:02:00 GMThttp://www.shnenglu.com/zhgw01/archive/2008/10/20/64493.htmlhttp://www.shnenglu.com/zhgw01/comments/64493.htmlhttp://www.shnenglu.com/zhgw01/archive/2008/10/20/64493.html#Feedback0http://www.shnenglu.com/zhgw01/comments/commentRss/64493.htmlhttp://www.shnenglu.com/zhgw01/services/trackbacks/64493.html
1.~译依存
#include"file1.h"
#include
"file2.h"

class class_name
{
 member1 m_m1;
 member2 m_m2;
public:
 member1 get_member_1()
const{};
 member2 get_member_2()
const{};
}
;
假设上面的头文g为file.hQ当file1.h或者file2.h发生变化Q或者file中的class_name的实现发生变化时Q所有包含file.h的文仉得重新编译,当file.h被很多文件包含时Q即使只是对class_name做了小的改动,也要p大量的编译时间?br>
2. Handle class Q句柄类Q?br>handle classs 只是提高了所有的接口Q同时包含了一个指向真正实现类的指针。真正的实现cd含在另外一个文件中Q当要修改这个类Ӟ只有file.h会引起重~译Q而包含file.h的其它文件不会引起重~译
#include"file1.h" //contain member1
#include
"file2.h" //contain member2
   #include"implement.h"

class class_name
{
  class_impl
* implement; //一般会用shared pointer

public:
 member1 get_member_1()
const
 
{
   
return implement->get_member_1();
 }


 member2 get_member_2() 
const
 
{
   
return implement->get_member_2();
 }

}
;

下面的是implement.h的实?br>

class class_impl
{
  member1 m_1;
  member2 m_2;
public;
  member1 get_member_1()
const {}
  member2 get_member_2()
const {}
}
;

2.Interface class
q是制作handle class的另外一U方?br>首先声明的class是抽象类Q一般里面的接口都是U虚函数Q就像Java的Interface
然后提高一个static的create函数Q就是工厂方法)Q这个函数返回改抽象cȝ某个具体子类的对象,函数声明中的q回g然是该抽象类的指针或引用?br>
具体子类在另外一个文件中声明?br>


apacs 2008-10-20 15:02 发表评论
]]>
C++的重载与虚函?/title><link>http://www.shnenglu.com/zhgw01/archive/2008/10/17/64239.html</link><dc:creator>apacs</dc:creator><author>apacs</author><pubDate>Fri, 17 Oct 2008 06:45:00 GMT</pubDate><guid>http://www.shnenglu.com/zhgw01/archive/2008/10/17/64239.html</guid><wfw:comment>http://www.shnenglu.com/zhgw01/comments/64239.html</wfw:comment><comments>http://www.shnenglu.com/zhgw01/archive/2008/10/17/64239.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/zhgw01/comments/commentRss/64239.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/zhgw01/services/trackbacks/64239.html</trackback:ping><description><![CDATA[     摘要: 其实真正要说的是虚函敎ͼ不过其中要扯倒重载,所以顺便也说了下重?. 重蝲1.1 单重?nbsp;     在C++中,是允许同名函数的存在 int add(int i,int j);float add(float i,float);     ...  <a href='http://www.shnenglu.com/zhgw01/archive/2008/10/17/64239.html'>阅读全文</a><img src ="http://www.shnenglu.com/zhgw01/aggbug/64239.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/zhgw01/" target="_blank">apacs</a> 2008-10-17 14:45 <a href="http://www.shnenglu.com/zhgw01/archive/2008/10/17/64239.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ADL兌名字查找http://www.shnenglu.com/zhgw01/archive/2008/10/07/63425.htmlapacsapacsTue, 07 Oct 2008 12:29:00 GMThttp://www.shnenglu.com/zhgw01/archive/2008/10/07/63425.htmlhttp://www.shnenglu.com/zhgw01/comments/63425.htmlhttp://www.shnenglu.com/zhgw01/archive/2008/10/07/63425.html#Feedback0http://www.shnenglu.com/zhgw01/comments/commentRss/63425.htmlhttp://www.shnenglu.com/zhgw01/services/trackbacks/63425.html如果l定一个函数名Q那么c++~译器如何去查找q个函数呢?
1.普通的名字查找 
   对变量的调用Q一般是按scope的大来?br>

#include<iostream>
#include
<string>
using namespace std;

namespace NS
{
        
string x="namespace NS";
}


string x="global scope";

class A
{
        
string x;
public:
        A():x(
"class scope"){};

        
void f(){
                
string x="local scope";
                cout
<<x<<endl;
        }

        
void g(){
                cout
<<x<<endl;
 }

}
;

class B
{
        
public:
                
void f()
                
{
                        cout
<<x<<endl;
                }

                
void g()
                
{
                        cout
<<NS::x<<endl;
                }

}
;

int main()
{
        A a;
        B b;
        a.f();a.g();
        b.f();b.g();
}

 

  • 首先调用local scope?
  • 接着调用class scope?
  • 最后才调用global scope?
  • 如果直接有用限定W,则调用限定符的,无论是namespace 限定W还是class限定W?

函数名字的查找,除了local scope的,基本同上Q有一点例外的是,则在下面ADL中说?br>
2.兌名字查找 (Argument Dependent Lookup)
在说明前要明?个概?br>

  • 兌(dependent name)Q不能解析的名字叫兌名,q个一般同模版有关Q比如template<class T> A{T t;}; 中,t是兌名,它在模版~译的第一阶段是无法解析的Q只有到W二阶段Q用实际参数来实例化的时候才知道 
  • 限定?qualified name): 指变量名或函数名前有cd前缀Q或者被对象Q指针修饎ͼ Class::f() //cd前缀  x.f() //对象修饰 p->f() //指针修饰

而ADL要解决的问题是对非限定名的查N题(限定名可以根据相应的限定来查找)Q?当出CҎ个非限定函数的调用,而该非限定函数却没有在一个(标准Q作用域内进行声明时Q简单的Ԍ该函数只声明在某个namespaceQ而你又没有引入这个namespace)Q编译器׃L它的每一个参数的名字I间来进行匹配。ADL是ؓ了简化函数调用,不过事实上它有点破坏了namespace的封装?br>比如以下函数调用
   std::string s("hello");
   std::cout<<s<<std::endl;
E序中没有指定用哪一个operator<<函数Q程序员当然不想输入
  std::operator<<(std::operator(std::cout,s),std::endl);
q时QADLҎs查找s的namespace,q查扄应的operator<<



apacs 2008-10-07 20:29 发表评论
]]>
悲惨Q被微Ybs了一轮就回来http://www.shnenglu.com/zhgw01/archive/2008/09/23/62577.htmlapacsapacsTue, 23 Sep 2008 06:04:00 GMThttp://www.shnenglu.com/zhgw01/archive/2008/09/23/62577.htmlhttp://www.shnenglu.com/zhgw01/comments/62577.htmlhttp://www.shnenglu.com/zhgw01/archive/2008/09/23/62577.html#Feedback0http://www.shnenglu.com/zhgw01/comments/commentRss/62577.htmlhttp://www.shnenglu.com/zhgw01/services/trackbacks/62577.htmlW二题,写代码判断回?br>W三题,写测试案例,是在输入框输入字符Ԍ然后下面回显q个字符?br>W四题,写时针跟分针所夹的角度Q好几年没带表了Q竟然以为只要是8点,旉永q指?。太蠢了Q因q道题直接出局Q到大厅的时候立LC解法Q?hour*5+minute/60*5)-minute如果是负的,反一下负P最后乘?60/60=6

apacs 2008-09-23 14:04 发表评论
]]>
extern "C"http://www.shnenglu.com/zhgw01/archive/2008/06/19/54031.htmlapacsapacsThu, 19 Jun 2008 08:57:00 GMThttp://www.shnenglu.com/zhgw01/archive/2008/06/19/54031.htmlhttp://www.shnenglu.com/zhgw01/comments/54031.htmlhttp://www.shnenglu.com/zhgw01/archive/2008/06/19/54031.html#Feedback0http://www.shnenglu.com/zhgw01/comments/commentRss/54031.htmlhttp://www.shnenglu.com/zhgw01/services/trackbacks/54031.html是cQ+׃支持函数重蝲Q生成的函数名与c生成的不一栗?br>
Z能让c调用cQ+函数Q就要用extern "c" {}使得cQ+按c那样生成函数?

apacs 2008-06-19 16:57 发表评论
]]>
const 探究Q{Q?/title><link>http://www.shnenglu.com/zhgw01/archive/2008/06/19/54030.html</link><dc:creator>apacs</dc:creator><author>apacs</author><pubDate>Thu, 19 Jun 2008 08:55:00 GMT</pubDate><guid>http://www.shnenglu.com/zhgw01/archive/2008/06/19/54030.html</guid><wfw:comment>http://www.shnenglu.com/zhgw01/comments/54030.html</wfw:comment><comments>http://www.shnenglu.com/zhgw01/archive/2008/06/19/54030.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/zhgw01/comments/commentRss/54030.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/zhgw01/services/trackbacks/54030.html</trackback:ping><description><![CDATA[1. const帔RQ如const int max = 100; <br>优点Qconst帔R有数据类型,而宏帔R没有数据cd。编译器可以对前者进行类型安全检查,而对后者只q行字符替换Q没有类型安全检查,q且在字W替换时可能会生意料不到的错误Q边际效应)<br><br><br><br>2. const 修饰cȝ数据成员。如Q?br>class A<br><br>{<br><br>const int size;<br><br>… <br><br>}<br><br>const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的。因为类可以创徏多个对象Q不同的对象其const数据成员的值可以不同。所以不能在cd明中初始化const数据成员Q因为类的对象未被创建时Q编译器不知道const 数据成员的值是什么。如<br><br>class A<br><br>{<br><br>const int size = 100; //错误<br><br>int array[size]; //错误Q未知的size<br><br>}<br><br>const数据成员的初始化只能在类的构造函数的初始化表中进行。要惛_立在整个cM都恒定的帔RQ应该用cM的枚丑ָ量来实现。如<br><br>class A<br><br>{…<br><br>enum {size1=100, size2 = 200 };<br><br>int array1[size1];<br><br>int array2[size2]; <br><br>}<br><br>枚D帔R不会占用对象的存储空_他们在编译时被全部求倹{但是枚丑ָ量的隐含数据cd是整敎ͼ其最大值有限,且不能表CQҎ?br><br><br><br>3. const修饰指针的情况,见下式:<br><br>int b = 500; <br>const int* a = & [1] <br>int const *a = & [2] <br>int* const a = & [3] <br>const int* const a = & [4] <br><br>如果你能区分Zq四U情况,那么Q恭喜你Q你已经q出了可喜的一步。不知道Q也没关p,我们可以参考《Effective c++》Item21上的做法Q如果const位于星号的左侧,则const是用来修饰指针所指向的变量,x针指向ؓ帔RQ如果const位于星号的右侧,const是修饰指针本nQ即指针本n是常量。因此,[1]和[2]的情늛同,都是指针所指向的内容ؓ帔RQconst攑֜变量声明W的位置无关Q,q种情况下不允许对内容进行更Ҏ作,如不?a = 3 Q[3]为指针本w是帔RQ而指针所指向的内容不是常量,q种情况下不能对指针本nq行更改操作Q如a++是错误的Q[4]为指针本w和指向的内容均为常量?<br><br><br><br><br>4. const的初始化 <br><br>先看一下const变量初始化的情况 <br>1) 非指针const帔R初始化的情况QA b; <br>const A a = b; <br><br>2) 指针const帔R初始化的情况Q?br><br>A* d = new A(); <br>const A* c = d; <br>或者:const A* c = new A(); <br>3Q引用const帔R初始化的情况Q?<br>A f; <br>const A& e = f; // q样作e只能讉K声明为const的函敎ͼ而不能访问一 <br><br>般的成员函数Q?<br><br>[思?]Q?以下的这U赋值方法正吗Q?<br>const A* c=new A(); <br>A* e = c; <br>[思?]Q?以下的这U赋值方法正吗Q?<br>A* const c = new A(); <br>A* b = c;<br><br><br><br><br><br><br><br><br><br>5. 另外const 的一些强大的功能在于它在函数声明中的应用。在一个函数声明中Qconst 可以修饰函数的返回|或某个参敎ͼ对于成员函数Q还可以修饰是整个函数。有如下几种情况Q以下会逐渐的说明用法:A& operator=(const A& a); <br>void fun0(const A* a ); <br>void fun1( ) const; // fun1( ) 为类成员函数 <br>const A fun2( );<br><br>1Q?修饰参数的constQ如 void fun0(const A* a ); void fun1(const A& a); <br>调用函数的时候,用相应的变量初始化const帔RQ则在函C中,按照const所修饰的部分进行常量化Q如形参为const A* aQ则不能对传递进来的指针的内容进行改变,保护了原指针所指向的内容;如Ş参ؓconst A& aQ则不能对传递进来的引用对象q行改变Q保护了原对象的属性?<br>[注意]Q参数const通常用于参数为指针或引用的情况,且只能修饰输入参?若输入参数采?#8220;g?#8221;方式Q由于函数将自动产生临时变量用于复制该参敎ͼ该参数本׃需要保护,所以不用const修饰?br><br>[ȝ]对于非内部数据类型的输入参数Q因该将“g?#8221;的方式改?#8220;const引用传?#8221;Q目的是Z提高效率。例如,void Func(A a)改ؓvoid Func(const A &a)<br><br>对于内部数据cd的输入参敎ͼ不要?#8220;g?#8221;的方式改?#8220;const引用传?#8221;。否则既达不到提高效率的目的Q又降低了函数的可理解性。例如void Func(int x)不应该改为void Func(const int &x)<br><br>2Q?修饰q回值的constQ如const A fun2( ); const A* fun3( ); <br>q样声明了返回值后Qconst按照"修饰原则"q行修饰Qv到相应的保护作用。const Rational operator*(const Rational& lhs, const Rational& rhs) <br>{ <br>return Rational(lhs.numerator() * rhs.numerator(), <br>lhs.denominator() * rhs.denominator()); <br>} <br><br>q回值用const修饰可以防止允许q样的操作发?Rational a,b; <br>Radional c; <br>(a*B) = c; <br><br>一般用const修饰q回gؓ对象本nQ非引用和指针)的情况多用于二目操作W重载函数ƈ产生新对象的时候?<br>[ȝ]<br><br>1. 一般情况下Q函数的q回gؓ某个对象Ӟ如果其声明为constӞ多用于操作符的重载。通常Q不用const修饰函数的返回值类型ؓ某个对象或对某个对象引用的情c原因如下:如果q回gؓ某个对象为constQconst A test = A 实例Q或某个对象的引用ؓconstQconst A& test = A实例Q?Q则q回值具有const属性,则返回实例只能访问类A中的公有Q保护)数据成员和const成员函数Qƈ且不允许对其q行赋值操作,q在一般情况下很少用到?<br><br>2. 如果l采?#8220;指针传?#8221;方式的函数返回值加const修饰Q那么函数返回|x针)的内容不能被修改Q该q回值只能被赋给加const 修饰的同cd指针。如Q?br><br>const char * GetString(void);<br><br>如下语句出现编译错误:<br><br>char *str=GetString();<br><br>正确的用法是Q?br><br>const char *str=GetString();<br><br>3. 函数q回值采?#8220;引用传?#8221;的场合不多,q种方式一般只出现在类的赙值函CQ目的是Z实现铑ּ表达。如Q?br><br>class A<br><br>{…<br><br>A &operate = (const A &other); //赋值函?br><br>}<br>A a,b,c; //a,b,c为A的对?br><br>…<br><br>a=b=c; //正常<br><br>(a=B)=c; //不正常,但是合法<br><br>若负值函数的q回值加const修饰Q那么该q回值的内容不允怿改,上例中a=b=c依然正确?a=B)=c׃正确了?br>[思?]Q?q样定义赋值操作符重蝲函数可以吗? <br>const A& operator=(const A& a);<br><br>6. cL员函Cconst的?<br>一般放在函C后,形如Qvoid fun() const; <br>M不会修改数据成员的函数都因该声明为constcd。如果在~写const成员函数Ӟ不慎修改了数据成员,或者调用了其他非const成员函数Q编译器报错,q大大提高了E序的健壮性。如Q?br><br>class Stack<br><br>{<br><br>public:<br><br>void Push(int elem);<br><br>int Pop(void);<br><br>int GetCount(void) const; //const 成员函数<br><br>private: <br><br>int m_num;<br><br>int m_data[100];<br><br>};<br><br>int Stack::GetCount(void) const<br><br>{<br><br>++m_num; //~译错误Q企图修Ҏ据成员m_num<br><br>Pop(); //~译错误Q企图调用非const函数<br><br>Return m_num;<br><br>}<br><br>7. 使用const的一些徏?<br><br>1 要大胆的使用constQ这给你带来无的益处Q但前提是你必须搞清楚原委; <br>2 要避免最一般的赋值操作错误,如将const变量赋|具体可见思考题Q?<br>3 在参C使用const应该使用引用或指针,而不是一般的对象实例Q原因同上; <br>4 const在成员函C的三U用法(参数、返回倹{函敎ͼ要很好的使用Q?<br>5 不要L的将函数的返回值类型定为const; <br>6除了重蝲操作W外一般不要将q回值类型定为对某个对象的const引用; <br><br>[思考题{案] <br>1 q种Ҏ不正,因ؓ声明指针的目的是Z对其指向的内容进行改变,而声明的指针e指向的是一个常量,所以不正确Q?<br>2 q种Ҏ正确Q因为声明指针所指向的内容可变; <br>3 q种做法不正; <br>在const A::operator=(const A& a)中,参数列表中的const的用法正,而当q样q箋赋值的时侯Q问题就出现了: <br>A a,b,c: <br>(a=B)=c; <br>因ؓa.operator=(B)的返回值是对a的const引用Q不能再c赋值给const帔R?br> <img src ="http://www.shnenglu.com/zhgw01/aggbug/54030.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/zhgw01/" target="_blank">apacs</a> 2008-06-19 16:55 <a href="http://www.shnenglu.com/zhgw01/archive/2008/06/19/54030.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>括号数和catalan?/title><link>http://www.shnenglu.com/zhgw01/archive/2008/06/05/52306.html</link><dc:creator>apacs</dc:creator><author>apacs</author><pubDate>Thu, 05 Jun 2008 15:03:00 GMT</pubDate><guid>http://www.shnenglu.com/zhgw01/archive/2008/06/05/52306.html</guid><wfw:comment>http://www.shnenglu.com/zhgw01/comments/52306.html</wfw:comment><comments>http://www.shnenglu.com/zhgw01/archive/2008/06/05/52306.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/zhgw01/comments/commentRss/52306.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/zhgw01/services/trackbacks/52306.html</trackback:ping><description><![CDATA[l定 P=a1×a2×a3×……×anQ依据乘法结合律Q不改变光序,只用括号表示成对的乘U,试问有几U括号化的方?br><br>n=4的例子如?br><img class=tex alt="((ab)c)d \quad (a(bc))d \quad(ab)(cd) \quad a((bc)d) \quad a(b(cd))" src="http://en.wikilib.com/images/math/0/f/9/0f95f511173c52ef07ab865ac7bc9b3f.png"><br><br>假设q个数是h(n-1), Q这里之所以是n-1Q是因ؓ实际上n指的是元素个敎ͼ?个元素乘一ơ,只要n-1ơ就可以乘完)<br>那么昄h(n-1)=h(0)h(n-2)+h(1)h(n-3)+...+h(n-2)h(0)  <br>对应的例子则?br>a(b(cd)) a((bc)d)    h(0)h(n-2)  (只要先对双的n-2个元素进行乘U,接着再跟最左边的元素相乘,h(0)=1Q?br>(ab)(cd)                  h(1)h(n-3)  (先乘最左边?个元素,再乘最双的n-3个元素,之后再把q?个元素相乘)<br>(a(bc))d ((ab)c)d    h(n-2)h(0)  <br><br><br>从括号化展开的应?br>1. q出?br>   Ҏ可行进出栈的模拟,左括号代表进栈,x号代表进行出栈,那么q出栈的序q当于括号化的Ҏ<br>2.三角剖分<br>   三角剖分是从距阵乘法类比过来的Q而距阵乘法就是括号化的问?br> <img src ="http://www.shnenglu.com/zhgw01/aggbug/52306.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/zhgw01/" target="_blank">apacs</a> 2008-06-05 23:03 <a href="http://www.shnenglu.com/zhgw01/archive/2008/06/05/52306.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.jv3znx.cn" target="_blank">7777þþùƷ</a>| <a href="http://www.aqbfrmi.cn" target="_blank">޹˾þþƷ</a>| <a href="http://www.91chd.cn" target="_blank">99þó18վ</a>| <a href="http://www.4000261688.cn" target="_blank">ŷƷþþ</a>| <a href="http://www.jiangkangcmw.cn" target="_blank">þþùҺ</a>| <a href="http://www.hthotel.com.cn" target="_blank">þþùƵ</a>| <a href="http://www.qeckf.cn" target="_blank">þþƷ2020</a>| <a href="http://www.sang423.cn" target="_blank">þþþþaëƬ</a>| <a href="http://www.pcb0.cn" target="_blank">ۺŮþþ30p</a>| <a href="http://www.lwtjf.cn" target="_blank">պһþ</a>| <a href="http://www.h3cedu.cn" target="_blank">þþþþþþƷŮ99</a>| <a href="http://www.k2938.cn" target="_blank">ڸþþþþ</a>| <a href="http://www.hrwp.net.cn" target="_blank">þۺ97ɫ</a>| <a href="http://www.kangle.net.cn" target="_blank">޾ƷŮþ777777</a>| <a href="http://www.tnbzjrzhl.cn" target="_blank">þþƷAV뽿ɫ</a>| <a href="http://www.3158unp.cn" target="_blank">97þþƷһ </a>| <a href="http://www.wdxxz.cn" target="_blank">պŮ18վþþƷ</a>| <a href="http://www.six-dream.cn" target="_blank">þþƷֻоƷ66</a>| <a href="http://www.dfux.com.cn" target="_blank">һõþۺϺݺAV</a>| <a href="http://www.yghzby.cn" target="_blank">þþƷа</a>| <a href="http://www.uoip.cn" target="_blank">MM131޹Ůþ</a>| <a href="http://www.safenote.cn" target="_blank">˶ݺɫۺϾþ</a>| <a href="http://www.wldyl.com.cn" target="_blank">þùƷ</a>| <a href="http://www.ceovod.cn" target="_blank">þ99Ʒþþôѧ</a>| <a href="http://www.ondai.com.cn" target="_blank">þþƷ91þۺ鶹</a>| <a href="http://www.dageda168.cn" target="_blank">ŷ777Ʒþþþ</a>| <a href="http://www.asnonfj.cn" target="_blank">ۺϾþþƷɫ</a>| <a href="http://www.tdstudio.com.cn" target="_blank">þþƷ99þ㽶ɫ </a>| <a href="http://www.fzcxpc.cn" target="_blank">99þþƷѾƷ </a>| <a href="http://www.ppmm163.cn" target="_blank">þþƷavӰԺ</a>| <a href="http://www.sybcypx.cn" target="_blank">þþƷ</a>| <a href="http://www.lae.net.cn" target="_blank">˳վþ99ȹ </a>| <a href="http://www.77gly.cn" target="_blank">þˬˬƬAV鶹</a>| <a href="http://www.pouhai.cn" target="_blank">þĻƷ</a>| <a href="http://www.dashi1.cn" target="_blank">þù鶹91</a>| <a href="http://www.68admin.cn" target="_blank">þþþþƵ</a>| <a href="http://www.uzijav.cn" target="_blank">999Ʒþþþþ</a>| <a href="http://www.baozhilong.cn" target="_blank">˾þۺϳ</a>| <a href="http://www.kingvit.com.cn" target="_blank">ƷۺϾþõһҳ</a>| <a href="http://www.17wgame.cn" target="_blank">պƷþþþþ</a>| <a href="http://www.ggjkb.cn" target="_blank">޹˾Ʒ91þþ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>