• 第三章 标准库类型


    有一种情况下,必须总是使用完全限定的标准库名字:在头文件中.理由是头文件的内容会被预处理器复制到程序中.用#include包含文件时,相当于头文件中的文本将成为我们编写的文件的一部分。如果在头文件中放置using声明,就相当于在包含该头文件的每个程序中都放置了同一using声明,不论该程序是否需要using声明.
     
    cin>>s;
    string类型的输入操作符:
    1.读取并忽略开头所有的空白字符(如,空格,换行符,制表符).
    2.读取字符直至再次遇到空白字符,读取终止.
    因此,如果输入到程序的是"   hello  world  ",则只能输出hello.
     
    注意:一般而言,应该尽量避免使用using指示而是用using声明,因为如果应用程序中使用了多个库,,使用using指示引入这些库中定义的名字空间,容易导致名字冲突.
     
    using指示:using namespace std;
    using声明:using std::cin;
     
    string 类型的输入操作符对空白字符的处理:读取并忽略有效字符(非空白字符)之前所有的空白字符,然后读取字符直至再次遇到空白字符,读取终止(该空白字符仍留在输入流中).
    getline函数对空白字符的处理:不忽略行开头的空白字符,读取字符直至遇到换行符,读取终止并丢弃换行符(换行符从输入流中去但并不存储在string对象中)
    string的size()返回的是字符的个数 ,但是,size()成员函数返回的不是整型数值,而是string::size_type
     
    string st1,st2="The expense of spirit";
    st1 = st2;
    大多数string库类型的赋值等操作的实现都会遇到一些效率上的问题,但值得注意的是,从概念上讲,赋值操作确实需要做一些工作.它必须先把st1占用 的相关内存释放掉,然后再分配给st1足够存放st2副本的内存空间,最后把st2中的所有字符复制到新分配的内存空间.
     
    当运行string 对象和字符串字面值混合连接操作时,+操作符的左右操作数必须至少有一个是string类型的 :
    string s4 ="hello"+"world" ; error:no string operand
    表达式试图将两个字符串字面值连接起来.这是不允许的.
     
    const_iterator
    vector::iterator改变vector中的元素值.每种容器类型还定义了一种为const_iterator的类型,l该类型只能用于读取容器内元素,但不能改变其值。
  • 相关阅读:
    .net core 负载均衡取客户端真实IP
    淘宝api接口,淘宝开放平台api接口
    c# RSA加密解密,与java代码互通问题
    剑指Offer算法题
    Mybatis
    JVM调优
    tp6使用cli(cmd)命令行模式调用访问控制器
    php实现可逆加密函数
    HRBP
    工作其实很像一场游戏
  • 原文地址:https://www.cnblogs.com/crazycodehzp/p/3239931.html
Copyright © 2020-2023  润新知