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<int> li{ 1,2,3,4,5 };
void func2(initializer_list<int> li) {
for (auto it = li.begin(); it != li.end(); ++it)
cout << *it << ' ';
}```
网友评论