zoukankan      html  css  js  c++  java
  • C++代码细节补充

    1、读取数量不定的输入数据

    while(std::cin>>value)

    或者用getline代替>> 读取一行内容,保留输入的空白符,而string对象会忽略开头的空白

    while(getline(cin,line))

    2、声明和定义的关系

    声明:使得名字为程序所知,规定对象的类型和名字

    定义:创建与名字相关的实体,申请存储空间

    变量只能被定义一次,但可以有多次声明;

    任何包含了显式初始化的声明即成为定义:

    int i;//声明并定义了i

    声明i但不定义i:

    extern int i;

    定义i而不声明:

    extern int i = 0

    3、命名规范

    变量名用小写

    自定义类名用大写字母开头

    4、范围for循环(可处理string字符的每个对象)

    for(declaration:expression)
            statment

    expression是一个对象,表示一个序列

    declaration负责定义一个变量,该变量是序列中的基础元素,每次迭代declaration的变量会被初始化为expression的下一个元素值

     举例:输出string的每个字符

    string str(“abc”);
    for(auto c : str)
        cout << c << endl;

    如果要用范围for循环改变string对象,则必须把循环变量定义为引用类型

    for(auto &c : str)
        c = toupper(c);//变成大写

    5、处理string字符的单个对象

    1、使用下标:

    s[s.size()]-1 ;//是s字符串最后一个字符

    2、使用迭代器

    所有标准库容器都可以支持迭代器,但只有少数几种支持下标运算,如vector

    v.begin()负责返回指向第一个元素(或字符)的迭代器,v.end() 负责返回指向v尾元素的下一个位置的迭代器(尾后迭代器)。

    若元素为空,begin()和end()指向同一个迭代器。

    for(auto it = s.begin();it != s.end();++it)
        statement;

    6、++i和i++终结

    ++i返回对象本身,而i++将原来的对象保存,建立一个副本,自增后返回。

    如果不需要使用原始对象,i++的操作会浪费空间。

    7、逗号运算符

    逗号运算符的结果是右侧表达式的值。

  • 相关阅读:
    Vue、Node 全栈,结合使用获取数据
    Day3.18组件案例-发表评论功能
    Day3.17父组件向子组件传方法
    Day3.16父组件向子组件传值
    Day3.15组件切换动画
    Day3.14组件切换方式二
    把旧系统迁移到.Net Core 2.0 日记 (19) --UI转用adminLTE
    NopCommerce 更改发票字体
    本地可以发邮件,阿里云服务器发送邮件失败,25端口被禁用
    WIFI 万能钥匙万玉权:团队之中要有跨三界之外的“闲人” [转]
  • 原文地址:https://www.cnblogs.com/juanjuanduang/p/10971821.html
Copyright © 2011-2022 走看看