zoukankan      html  css  js  c++  java
  • C++Primer 第三章 字符串、向量和数组

    //1.位于头文件中的代码一般不应该使用using声明。这是因为头文件的内容会拷贝到所有引用它的文件中,可能会产生始料未及的命名空间冲突。
    //  三种使用命名空间中的名字的方法
        using namespace std;    //最好不要在头文件中使用,容易造成命名空间名字污染,导致命名冲突
        using std::string;
        std::string;
    
    //2.头文件cctype中定义了一组对字符进行操作的函数
    //  isalnum(), isalpha(), iscntrl(), isdigit(), isgraph(), isprint(),ispunct(), isspace(), isupper(), isxdigit(), tolower(), toupper()
    
    //3.对于运算符&&来说,只有左侧求值为TRUE,才会继续对右侧求值
    
    //4.在不清楚使用哪种类型的容器的时候,使用迭代器对容器的元素进行操作,并使用迭代器共有的操作(*it, it->men, ++it, --it(注意点:forward_list不支持递减运算符), it1 == it2, it1 != it2),这样在更换容器的时候很便利。
        vector<int> vecInt(10);                         //vecInt中存放着10个0,此时会进行值初始化
        vector<int>::iterator itVec = vecInt.begin();
    
    //5.数组中元素的个数也是数组类型的一部分,编译时维度应该是已知的,所以其维度必须是一个常量表达式。
        char buff[10] = "szn";    //允许使用一个字符串常量去初始化字符数组    buff是可读可写的
        char *str = "szn";        //最好不要这样使用
        /*
        C++03中的字符串常量const char[N]当具有显而易见的目标类型时,作为一个限定修饰的转换的结果是char*,这是一个废弃条款,已经在C++11中予以废弃,
        就是说,在C++03中,char *tem="szn";是合法的但在C++11中是非法的,C++11必须这样写:const char * tem = "szn";
        在C中,双引号括起来的字符序列不叫字符串常量,它仅仅是字符串字面量,C的字符串字面量并不属于常量,因为C的常量和常量表达式只能是编译期的。C++中的字符串字面量才能称为字符串常量。
        C中的字符串字面量类型是char[N],数组到指针的转换结果为char*,而C++中的字符串常量类型是const char[N],数组到指针的转换结果是const char*。
        */
    
    //6.数组的一个特性:在很多用到数组名的地方,编译器会自动将其替换为一个指向数组首元素的指针,并且此指针会失去所有数组的特性。
    
    //7.C++11新标准引入了两个名为begin(),end()的函数,用法与容器的同名函数类似。可以作用于内置数组。定义在头文件iterator中。
    
    //8.内置类型的下标运算符中的值可以为负数,但是标准库类型限定其使用的下标必须为无符号类型。
  • 相关阅读:
    [转]windows7远程桌面连接失败:发生身份验证错误。要求的函数不受支持
    SNMP协议学习笔记
    Sublime for MacOS 使用技巧
    Git常用操作
    罗技K380连接Win10(MacBookPro双系统)系统失败
    Git知识点汇总
    开发工作中提高效率的一些方式
    css
    IO多路复用
    进程
  • 原文地址:https://www.cnblogs.com/szn409/p/5514408.html
Copyright © 2011-2022 走看看