主要巩固知识,多用几种方法实现

4.20

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
#include<iostream>
#include<vector>
#include<string>
using namespace::std;
int main()
{
    string arr[] = { "hello",",","how","are","you" };
    vector<string>arrow(begin(arr), end(arr));
    //尽量使用前置
    for (vector<string>::iterator iter = arrow.begin(); iter != arrow.end(); ++iter){
        //*iter++;  合法: 先对iter加1,再返回iter指向的值
        //(*iter)++; 不合法: 返回iter指向的值为string++操作
        //*iter.empty(); 不合法:  iter是个指针,没有empty()的成员
        //iter->empty();  合法:判断iter所指向的值是否为空
        //++*iter;   不合法: *iter可以得到iter所指的字符串,但是字符串并没有++操作
        //iter++->empty();  合法: 首先判断iter所指向的值是否为空,再对iter加1
        cout << *iter << endl;
    }
    return 0;
}

注意:

iter++->empty()   先比较iter->empty,再进行iter++

++iter->empty()   比较iter->empty,无法执行++iter;不合法,表达式必须是可修改的左值

 

4.21

#include<iostream>
#include<vector>
#include<string>
using namespace::std;
int main()
{
    int num;
    vector<int> m{ 10,9 };
    m.begin();
    while (cin >> num)
    {
        m.push_back(num);
    }
    for (auto &c : m) {
        if (c%2)
            c = c * 2;
    }
    //for (auto &iter = m.begin(); iter != m.end();++iter) 错误非常量引用必须是左值
    for (auto iter = m.begin(); iter != m.end();++iter) {
        cout << *iter << " ";
    }
    return 0;
}

 

 

4.22

ctral+z再enter跳出循环

#include<iostream>
#include<vector>
#include<string>
using namespace::std;
using std::vector;
int main()
{
    int grade;
    cout << "please Input the grade:" << endl;
    while (cin >> grade)
    {
        string finalgrade;
    //注意=号 finalgrade
= (grade < 60) ? "fail" : (grade < 75) ? "low pass" : (grade <=90) ? "pass" : "hign pass"; cout << finalgrade << endl; } return 0; }

 

4.23

string s = "word";
string pl = s + (s[s.size() - 1] == 's' ? "" : "s");//words

 

4.24

嵌套条件运算符

满足右结合律,输入95

判断过程; (grade > 90)->输出“high pass”

若满足左结合律,输入95

判断过程:(grade > 90)->(grade < 60)-> 输出“pass”

    先判断(grade>90)

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄