C++ primer第4章题目解答
来源:互联网 发布:医院信息化和大数据库 编辑:程序博客网 时间:2024/05/16 14:18
习题4.7
编写一个必要的代码将以数组赋给另外一个数组,然后把这段代码用vector实现
#include<iostream>#include<array>using std::array;int main(){array<int, 5> j;for (int i = 0; i < 5; i++){j[i] = i;}array<int, 5> k = j;for (int i = 0; i < 5; i++){std::cout << k[i] << std::endl;}std::cin.get();return 0;}
#include<iostream>#include<vector>using std::vector;int main(){vector<int> j(5,0);vector<int> k;vector<int>::iterator p = j.begin();for (p; p != j.end(); p++){k.push_back(*p);}for (int i = 0; i < 5; i++){std::cout << k[i] << std::endl;}std::cin.get();return 0;}
编写程序判断两个数组是否相等,然后编写一段类型的程序比较vector
1.数组
#include<iostream>#include<array>using std::array;int main(){array<int, 6> num1;array<int, 6> num2;for (int i = 0; i < 6; i++){std::cin >> num1[i];}for (int i = 0; i < 6; i++){std::cin >> num2[i];}if (num1 == num2){std::cout << "相等" << std::endl;}else{std::cout << "不相等" << std::endl;}system("pause");return 0;}
vector使用
#include<iostream>#include<vector>using std::vector;int main(){vector<int> num1, num2;int num;std::cin >> num;while (num != -1){num1.push_back(num); std::cin >> num;}std::cin >> num;while (num != -1){num2.push_back(num);std::cin >> num;}if (num2 == num1){std::cout << "相等" << std::endl;}else{std::cout << "不相等" << std::endl;}system("pause");return 0;}
4.25
编写程序比较2个string类型的字符串,然后编写另外一个程序比较C语言风格字符串值
string类型比较
#include<string>#include<iostream>using std::string;int main(){string str1, str2;getline(std::cin, str1);getline(std::cin, str2);if (str1 == str2){std::cout << "相等" << std::endl;}else if (str1 > str2){std::cout << "str1>str2" << std::endl;}else{std::cout << "str1<str2" << std::endl;}system("pause");return 0;}
C语言风格字符串比较
#include<string>#include<iostream>using std::string;int main(){char *str1 = new char[80];char *str2 = new char[80];std::cin >> str1;std::cin >> str2;int res = strcmp(str1, str2);if (res > 0){std::cout << "str1>str2" << std::endl;}else if (res < 0){std::cout << "str1<str2" << std::endl;}else{std::cout << "str1==str2" << std::endl;}system("pause");return 0;}
习题4.28
编写程序从标准输入设备读入元素数据建立一个int型vecor对象,然后动态创建一个与该vector对象大小一致的数组
把vector对象的所有元素复制给新的数组
#include<iostream>#include<string>#include<vector>using std::vector;int main(){vector<int> k;int num;std::cin >> num;while (num != -1){k.push_back(num);std::cin >> num;}int *p = new int[k.size()];vector<int>::iterator begin1 = k.begin();int i= 0;for (i, begin1; begin1 != k.end(); begin1++, i++){p[i] = *begin1;}for (int i = 0; i < k.size(); i++){std::cout << p[i] << " ";} delete []p;system("pause");return 0;}
习题4.30
编写程序连接2个c风格字符串字面值,把结果存储在一个c字符串风格中,接着,连接2个string
#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<stdlib.h>#include<string>int main(){const char *str1 = "hello world ";const char *str2 = "你好 世界";int length = strlen(str1) + strlen(str2);char *p = new char[length + 1];strcpy(p, str1);strcat(p, str2);std::cout << p << std::endl;delete[]p;system("pause");return 0;}
string类型连接
#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<stdlib.h>#include<string>int main(){using std::string;string str1 = "hello world ";string str2 = "你好,中国";string str3 = str1 + str2;std::cout << str3 << std::endl;system("pause");return 0;}
习题4.32
编写程序用int型数组初始化vector对象
#include<iostream>#include<vector>int main(){using std::vector;const int num = 8;int a[num];for (int i = 0; i < num; i++){std::cin >> a[i];} //用数组名与数组名+num初始化vector vector<int> ivec(a, a + num);vector<int>::iterator pj = ivec.begin();for (pj; pj != ivec.end(); pj++){std::cout << *pj << " ";}system("pause");return 0;}
习题4.33
编写程序把int型vector复制给int型数组
#include<iostream>#include<vector>int main(){std::vector<int> ivec;int ival;std::cout << "Enter numbers" << std::endl;while (std::cin >> ival)ivec.push_back(ival);int *parr = new int[ivec.size()];int ix = 0;for (std::vector<int>::iterator iter = ivec.begin(); iter != ivec.end(); ++iter, ++ix){parr[ix] = *iter;}system("pause");return 0;}
习题4.34
编写程序读入一组string类型的数据并将它们存储在vector中,接着,把该vector对象复制给一个字符指针数组,为vector中的每个元素创建一个新的字符数组
为vector中的每个元素创建一个新的字符数组,并把该vector元素的数据复制到相应的字符数组中,最后把指向该数组的指针插入字符指针数组
#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<stdlib.h>#include<vector>#include<string>int main(){std::vector<std::string> svec;std::string str;while (std::cin >> str){svec.push_back(str); //插入到容器中}char **parr = new char *[svec.size()]; //分配int i = 0;for (std::vector<std::string>::iterator iter = svec.begin(); iter != svec.end(); ++iter, ++i){char *p = new char[(*iter).size() + 1];strcpy(p, (*iter).c_str());parr[i] = p;}for (i = 0; i != svec.size(); ++i){delete[]parr[i];}delete[]parr;std::cin.get();return 0;}
4.35
输出习题4.34中建立的vector对象和数组的内容,输出数组后,记得释放字符数组
#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<stdlib.h>#include<vector>#include<string>int main(){std::vector<std::string> svec;std::string str;while (std::cin >> str){svec.push_back(str); //插入到容器中}char **parr = new char *[svec.size()]; //分配int i = 0;for (std::vector<std::string>::iterator iter = svec.begin(); iter != svec.end(); ++iter, ++i){char *p = new char[(*iter).size() + 1];strcpy(p, (*iter).c_str());parr[i] = p;}for (std::vector<std::string>::iterator nm = svec.begin(); nm != svec.end(); ++nm){std::cout << *nm << std::endl;}for (i = 0; i != svec.size(); ++i){delete[]parr[i];}delete[]parr;system("pause");std::cin.get();return 0;}
0 0
- C++ primer第4章题目解答
- C++primer第9章习题解答
- C++primer第14章习题解答
- C++primer第15章习题解答
- 《c++primer》第15章面对对象程序设计习题解答
- C++primer中文版第4版 习题解答
- C++Primer第五版 第4章 表达式(练习解答)
- C++Primer第五版 第1章 开始(练习解答)
- C++Primer第五版 第2章 变量和基本类型(练习解答)
- C++Primer第五版 第3章 字符串、向量和数组(练习解答)
- C++Primer第五版 第5章 语句(练习解答)
- C++Primer第五版 第6章 函数(练习解答)
- C++Primer第五版 第7章 类(练习解答)
- C++Primer第五版 第8章 IO库(练习解答)
- C++Primer第五版 第9章 顺序容器(练习解答)
- C++Primer第五版 第10章 泛型算法(练习解答)
- C++Primer第五版 第11章 关联容器(练习解答)
- C++primer第九章习题解答
- Github for windows设置代理
- NDK开发常见错误
- Android DrawText 字符串的绘制
- C# 正则数据验证、安全、转换类
- [Cocoa]_[初级]_[NSTableView--数据操作和表格操作要注意的问题]
- C++ primer第4章题目解答
- 700 Delete Numbers
- Sqlite3的简单用法,得到行数和列值【附源码和文件】
- JVM调试日志详解
- 阿里云产品分析(2):阿里云存储与CDN可用性分析与天弘基金案例
- 常用正则表达式
- Java线程:线程的同步---同步方法
- ORACLE in与exists语句的区别
- dispatch_queue