C++小知识点

内置类型的指针、引用,sizeof大小、虚函数大小

 1       char  yinyong  =   10 ;
 2       char   & =  yinyong;
 3      cout  <<   sizeof (z)  <<  endl;
 4      
 5       int  intee  =   10 ;
 6       int   & intez  =  intee;
 7      cout  <<   sizeof (intez)  <<  endl;
 8      
 9       char   * zz  =   & yinyong;
10      cout  <<   sizeof (zz)  <<  endl;

输出结果为1 4 4

内置类型的指针的sizeof值是:4

代码
 1  #include  < iostream >
 2  using   namespace  std;
 3 
 4  class  Base{
 5  public :
 6      Base(){
 7          cout  <<   " construction "   <<  endl;
 8      }
 9       virtual   void  myfun(){};
10  private :
11       int  ival;
12  };
13 
14  void  main()
15  {
16      Base mybase;
17      cout  <<   " sizeof mybase is :  "   <<   sizeof  mybase  <<   " \nEND "   <<  endl;
18  }

 

Output:
     虚函数、整型ival各需要4 byte,总计8byte。

  如果注释掉9、10、11行,输出大小为1。也就是说一个类内没有任何成员变量、成员函数、虚函数,它的sizeof大小为 1 byte。

 

string对象中的字符处理

  我们经常要对string对象中的单个字符进行处理,例如通常需要知道某个特殊字符是否为空白字符、字母或者数字。这些函数定义在cctype头文件中。

  isdigit(c) 是否是数字    islower(c) 是小写字母    isupper(c) 是大写字母    isspace(c) 是空白字符

  ispunct(c) 是标点符号    tolower(c) 转换成小写字母  toupper(c) 转换成大写字母   isalpha(c) 是字母?

 

解引用操作符* 和 自增操作符++ 的优先级

*iter++

++的优先级高于*。

 

string实际上也是C-style 风格字符串 

 

     string  mystring  =   " meng " ;
    cout 
<<  mystring.size()  <<  endl;
    
if (mystring[ 4 ==  NULL)
        cout 
<<   " true "   <<  endl;

运行的结果是,4 true

这说明string对象的末尾也有个NULL。

mystring.length() 结果也是4。 

 

vector, list, deque 容器

  vector, deque都支持容器的随即访问,vector插入删除非末端元素耗费代价高。deque插入删除非两端位置元素代价高。

  list不支持随机访问元素,但可以在任意位置插入删除元素而消耗很低的代价。

1       list < int >  ilist;
2       vector < int >  ivec;
3       deque < int >  ideq;
4       ilist[ 3 ];   // ERROR
5       ideq[ 3 ];   // OK

6   ivec[3];  //OK  

 

关于string

1        string  str  =   " Stately plump Buck " ;
2        char   * cp  =   " Stately plump Buck " ;
3        string  s1(str,  7 ), s2;
4       s2.assign(cp,  7 );
5       cout  <<  s1  <<  endl;
6       cout  <<  s2  <<  endl;

打印结果为

  空格plump Buck

  Stately 

 

空类的sizeof大小

   空类指的是里面只有非virtual成员函数的类,并且不继承任何类,无成员变量。其sizeof大小为1。 

 

 

你可能感兴趣的:(C++)