C++Primer_课后习题3.31+3.32

时间:2020-04-25
本文章向大家介绍C++Primer_课后习题3.31+3.32,主要包括C++Primer_课后习题3.31+3.32使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

本人是一个小菜鸟,最近才开始学习的C++,这个是我自己写的课后习题

版本是第五版

如有指正,不胜感激。有疑问的地方也欢迎提出,我一定尽力更改。

练习3.12

//3.3.1节练习
//练习3.14
#include<iostream>
#include<string>
#include<vector>	//使用vector 迭代器时必须的头文件
using std::vector;	using std::string;		//开辟命名空间	
int main() {
	vector<vector <int >> ivec;
	vector<string>svec = ivec;			
	//不存在用户定义的从 "std::vector<std::vector<int, std::allocator<int>>, std::allocator<std::vector<int, std::allocator<int>>>>" 到 "std::vector<std::string, std::allocator<std::string>>" 的适当转换
	vector<string>sve (10, "null");

	return 0;
}

代码如图所视

除了第二个是错的,其它的都是对的。第二个错误的原因编译器也给出来了,总的来说就是赋值的左右两边的类型是不一样的,是无法进行赋值运算的。

练习3.13

#include<iostream>
#include<string>
#include<vector>	//使用vector 迭代器时必须的头文件
using std::vector;	using std::string;	using std::endl;	using std::cout;//开辟命名空间	
int main() {
	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 };				//这里这样用不太对,10不是字符串,编译器会自动认为
										// vector<string>v6{ 10 };=vector<string>v6(10);	
	vector<string>v7{ 10,"hi" };
	cout << "v1 is:";					//说明语句,让代码更清楚
	for (auto c : v1) cout << c << endl;//一个完整的范围for语句
	cout << "v2 is:";					//  v1其实是不能输出的,因为v1是个未定义的值
										//在这里我的计算机把v1当成了空字符
	for (auto c : v2) cout << c << endl;
	cout << "v3 is:";
	for (auto c : v3) cout << c << endl;
	cout << "v4 is:";
	for (auto c : v4) cout << c << endl;
	cout << "v5 is:";
	for (auto c : v5) cout << c << endl;
	cout << "v6 is:";
	for (auto c : v6) cout << c << endl;
	cout << "v7 is:";
	for (auto c : v7) cout << c << endl;
	
	system("pause");
	return 0;

}

练习3.3.2

练习3.14

//3.32节练习
//3.14
#include<iostream>
#include<vector>	
using std::vector;	using std::endl;	using std::cout;	using std::cin;
int main() {
	vector<int>v1;
	int i;
	while (cin >> i)		//当输入ctrl+z时结束循环
		v1.push_back(i);
	for (auto c : v1)
		cout << c << endl;
	system("pause");
	return 0;
}

练习3.15

#include<iostream>
#include<vector>	
#include<string>
using std::vector;	using std::endl;	using std::cout;	using std::cin;	using std::string;
int main() {
	vector<string>v1;
	string i;
	while (cin >> i)		//当输入ctrl+z时结束循环
		v1.push_back(i);
	for (auto c : v1)
		cout << c << endl;
	system("pause");
	return 0;
}

原文地址:https://www.cnblogs.com/a-small-Trainee/p/12772727.html