C++primer[习题][第三章][21-30]
2017-11-26 18:35
495 查看
3.21
3.22
3.23
3.24
3.25
3.26
迭代器没有加法运算,end-beg表示当前位置与起始位置之间相隔多少元素,除2则为中间位置与beg的差距,加上beg则表示将beg移动到中间位置。
3.27
3.28
3.29
1.数组定长。
2.数组不可以随意增加删除元素。
3.30
当ix到10,下标越界,需要改成
#include <iostream> #include <vector> using std::cin; using std::cout; using std::endl; using std::vector; int main() { vector<int> ivec(10, 42); for (auto i = ivec.begin(); i != ivec.end(); i++) { cout << *i << " "; } return 0; }
3.22
#include <iostream> #include <vector> #include <string> using std::cin; using std::cout; using std::endl; using std::vector; using std::string; int main() { vector<string> svec(10, "hello "); for (auto i = svec.begin(); i != svec.end(); i++) { for (auto &c : (*i)) { c = toupper(c); } cout << *i; } return 0; }
3.23
#include <iostream> #include <vector> using std::cin; using std::cout; using std::endl; using std::vector; int main() { vector<int> ivec(10, 20); for (auto &c : ivec) { c *= 2; } for (auto &c : ivec) { cout << c << " "; } return 0; }
3.24
#include <iostream> #include <vector> using std::cin; using std::cout; using std::endl; using std::vector; int main() { vector<int> ivec(10, 20); for (auto i = ivec.begin(); i != ivec.end() - 1; i++) { cout << *i + *(i + 1) << " "; } auto i = ivec.begin(); auto j = ivec.end() - 1; while (i < j) { cout << *i + *j << " "; i++; j--; } return 0; }
3.25
#include <iostream> #include <vector> using std::cin; using std::cout; using std::endl; using std::vector; int main() { vector<unsigned> scores(11, 0); auto scoresiter = scores.begin(); unsigned grade; while (cin >> grade) { if (grade <= 100) { ++*(scoresiter + grade / 10); } } for (auto score : scores) { cout << score << " "; } return 0; }
3.26
迭代器没有加法运算,end-beg表示当前位置与起始位置之间相隔多少元素,除2则为中间位置与beg的差距,加上beg则表示将beg移动到中间位置。
3.27
unsigned buf_size = 1024; int ia[buf_size]; //非法,buf_size必须是个常量表达式 int ib[4 * 7 - 14]; //正确。 int ic[txt_size()]; //非法,txt_size()必须是个常量值 char st[11] = "fundamental"; //非法,数组大小应该为12
3.28
string sa[10]; //值为空字符串 int ia[10]; //值全为0 int main() { string sa2[10]; //值为空字符串 int ia2[10]; //未定义值 return 0; }
3.29
1.数组定长。
2.数组不可以随意增加删除元素。
3.30
constexpr size_t array_size = 10; int ia[array_size]; for (size_t ix = 1; ix <= array_size; i++) { ia[ix] = ix; }
当ix到10,下标越界,需要改成
size_t ix = 0; ix < array_size; i++。
相关文章推荐
- C++Primer第五版 第三章习题答案(21~30)
- C++Primer第五版 第十六章习题答案(21~30)
- C++Primer第五版 第十八章习题答案(21~30)
- C++Primer第五版 第十二章习题答案(21~30)
- C++Primer第五版 第六章习题答案(21~30)
- C++Primer第五版 第九章习题答案(21~30)
- C++Primer第五版 第十一章习题答案(21~30)
- C++Primer第五版 第四章习题答案(21~30)
- C++Primer第五版 第二章习题答案(21~30)
- C++Primer第五版 第十五章习题答案(21~30)
- C++Primer第五版 第七章习题答案(21~30)
- C++Primer第五版 第十章习题答案(21~30)
- C++primer[习题][第二章][21-30]
- C++Primer第五版 第十三章习题答案(21~30)
- c++primer第三章习题(1)
- C++Primer第五版 第三章习题答案(11~20)
- C++Primer第五版 第三章习题答案(31~40)
- C++Primer第五版 第三章习题答案(41~45)
- c++primer第三章习题(2)
- 《C++ Primer》第五版课后习题解答_第三章(4)(30-36)