• 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。 

  • 相关阅读:
    一次linux启动故障记录
    linux 时间相关的一些总结
    linux 3.10 gro的理解和改进
    linux 3.10 的中断收包笔记
    一个有趣的nginx问题引发的小问题
    linux 3.10 tcp的accept测试
    linux mce的一些相关内容和用户态监控的设计方法
    C/C++(基础-运算符详解)
    C/C++(基础-常量,类型转换)
    C/C++(基础编码-补码详解)
  • 原文地址:https://www.cnblogs.com/younes/p/1601289.html
Copyright © 2020-2023  润新知