《C++ Primer》6.2

1.使用引用避免拷贝

// 使用引用避免拷贝 
bool IsSame(string &a1, string &a2) {
    return (a1 == a2);
}

2.使用引用形参返回额外信息

string::size_type find_char(const string &s, char c, string::size_type &cnt) {
    // find_char()查询字符串中第一次出现字符c的位置以及隐式地返回c出现的次数
    decltype(s.size()) ret;
    cnt = 0;
    bool HasFound = false;
    for (auto it = s.begin(); it != s.end(); ++it) {
        if (*it == c) {
            if (HasFound == false) {
                HasFound = true;
                ret = it - s.begin() + 1;
            }
            cnt++;
        }
    }
    return ret;
}

void func1() {
    string s = "This is a string.";
    string::size_type occ = 0;
    cout << find_char(s, 'i', occ) << endl;
    cout << occ << endl;
}

3.C++ 11 initializer_list

initializer_list li{ 1,2,3,4,5 };
void func2(initializer_list li) {
    for (auto it = li.begin(); it != li.end(); ++it)
        cout << *it << ' ';
}```

你可能感兴趣的:(《C++ Primer》6.2)