练习3.6
string s = "1234567";
for (auto &c : s) {
c = 'X';
}
cout << s << endl;
练习3.7
- 使用auto c,此时c是一个局部变量,对c的修改并不会反映到s中
练习3.11
const string s = "Keep out!";
for (auto &c : s) { }
练习3.13
vector<int> v1;
vector<int> v2(10);
vector<int> v3(10, 42);
vector<int> v4{10};
vector<int> v5{10, 42};
vector<string> v6{10};
vector<string> v7{10, "hi"};
练习3.19
- 三种方式实现定义vector 10个元素,每个元素都为42
vector<int> v1(10, 42);
vector<int> v2{42,42,42,42,42,42,42,42,42,42};
vector<int> v3;
for (int i = 0; i < 10; ++i) {
v3.push_back(42);
}
练习3.20
vector<int> v{1, 2, 3, 4, 5, 6, 7, 8, 9};
for (decltype(v.size()) i = 0; i < v.size()-1; ++i) {
cout << v[i] + v[i+1] << " ";
}
cout << endl << "-----" << endl;
for (decltype(v.size()) i = 0; i < v.size() / 2; ++i) {
cout << v[i] + v[v.size()-1-i] << " ";
}
cout << endl;
3 5 7 9 11 13 15 17
-----
10 10 10 10
练习3.27
const char s[] = "hello";
cout << sizeof(s) << endl;
const char ca[] = {'h', 'e', 'l', 'l', 'o'};
cout << sizeof(ca) << endl;
const char *cp = ca;
while (*cp) {
cout << *cp << endl;
++cp;
}
练习3.43
int main() {
int ia[3][4] = {0};
int size = sizeof(ia) / sizeof(int);
for (int i = 0; i < size; ++i) {
*(*ia + i) = i;
}
for (int (&r)[4] : ia) {
for (int num : r) {
cout << num << " ";
}
}
cout << endl;
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 4; ++j) {
cout << ia[i][j] << " ";
}
}
cout << endl;
for (int (*p)[4] = ia; p != ia+3; ++p) {
for (int *q = *p; q != *p+4; ++q) {
cout << *q << " ";
}
}
cout << endl;
return 0;
}
练习3.45
int main() {
int ia[3][4] = {0};
int size = sizeof(ia) / sizeof(int);
for (int i = 0; i < size; ++i) {
*(*ia + i) = i;
}
for (auto &r : ia) {
for (int num : r) {
cout << num << " ";
}
}
cout << endl;
for (auto p = ia; p != ia+3; ++p) {
for (auto q = *p; q != *p+4; ++q) {
cout << *q << " ";
}
}
cout << endl;
}