3.14 编写一段程序用cin读入一组整数并将它们存入一个vector对象中。
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> num; //定义int类型对象
int a[100]; //定义数组
int n;
cout << "请输入数组的大小:\n";
cin >> n;
for (int i = 0; i< n; i++)
{
cin >> a[i]; //输入数组内容
num.push_back(a[i]); // 将数组内容放到num尾端
}
for (int i = 0; i < n; i++)
cout << num[i] << " "; //输出
return 0;
}
3.15 改写上题读入字符串
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<string> str_v; // 定义空串
string str;
cin >> str;
str_v.push_back(str); // str字符串放入str_v对象尾部
for (int i=0; i < str_v.size(); i++)
{
cout << str_v[i];
}
return 0;
}
3.17从cin读入一组词并把它们存入到vector对象,然后设法把所有词都改为大写并输出;
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<string> str_v;
string str;
getline(cin,str); // 可以输入带有空格的字符串函数
// cin >> str;
str_v.push_back(str); // 存入
for (int i = 0; i < str_v.size(); i++)
{
for (int j = 0; j < str_v[i].size(); j++) // 注意是双循环
str_v[i][j] = toupper(str_v[i][j]); // toupper的操作对象是单个字符
cout << str_v[i];
}
return 0;
}
3.19:定义一个含有10个元素的vector对象,所有元素的值都是42,请列举三种方法:
vector<int> v1 = (10,42);
vector<int> v2 = {42,42,42......};
vector<int> v3 = v1;
3.20输如一组数将第一个和最后一个的和输出,第二个和倒数第二个,以此类推
#include <iostream>
#include <vector>v
#include <string>
using namespace std;
int main()
{
vector<int> int_v; // 初始化 有10个元素初始化为0
int arr[20];
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> arr[i];
int_v.push_back(arr[i]);
}
int sum[10];
for (int i = 0; i < n; i++)
{
sum[i] = int_v[i] + int_v[n-i-1];
cout << sum[i] << "\t";
i++;
}
return 0;
}
3.21:用迭代器输入输出;
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
vector<string> str_v;
string str;
getline(cin, str);
str_v.push_back(str); // 和vector一样 就是循环输入时用的不一样
for (auto i = str_v.begin(); i != str_v.end(); i++) //
{
cout << *i << endl;
}
return 0;
}
输入数字:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
int n;
cout << "请输入要存意判断其是否为空 的数的个数:";
cin >> n ;
vector<int> num_v;
int num[20];
for (int i = 0; i != n; i++)
{
cin >> num[i];
num_v.push_back(num[i]);
}
for (auto it = num_v.cbegin(); it != num_v.cend(); it++) //
{
cout << *it << endl;
}
return 0;
}
3.23创建一个含有10个数字的vector对象,用迭代器将其变为原来的二倍并输出;
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int>num;
int arr[10];
for (int i = 0; i < 10; i++)
{
cin >> arr[i];
num.push_back(arr[i]);
}
for (auto it = num.begin(); it != num.end(); it++)
{
*it += *it;
cout << *it << " ";
}
return 0;
}
/*int main() //两种方法
{
vector<int>num(10,0); //容器对象初始化
for (auto it = num.begin(); it != num.end(); it++)
{
cin >> *it;
*it = *it + *it;
cout << *it << " ";
}
return 0;
}
*/
3.24 输入10个数
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<int> num(10,0);
for (auto it = num.begin(); it != num.end(); it++)
{
cin >> *it;
}
// it指向开始元素的位置,e_d 指向结束元素的下一位置
for (auto it = num.begin(), e_d = num.end(); it != num.end(); it++)
{
e_d--;
// cin >> *it;
*it += *e_d;
cout << *it<< " ";
it++;
e_d--;
}
return 0;
}
数组
3.35 编写一段程序,利用指针将数组的元素置为0
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int a[10]; // begin(a) 首元素的地址,end(a)尾元素的下一位置地址
for (auto i = begin(a); i!= end(a); i++) // 也可以用下标
{
cin >> *i; // 赋值
cout << *i << " ";
}
cout << "\n";
int *p = a;
for (int j = 0; j < 10; j++)
{
*p = 0;
cout << a[j] << " "; //修改为0
p++;
}
return 0;
}
3.36 比较两个数组是否相等(比较简单),(2)比较两个vector是否相等
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int a[5] ={0};
int b[5] ={0};
for (int i = 0; i < 5; i++)
{
cin >> a[i];
}
for (int j = 0; j < 5; j++)
{
cin >> b[j];
}
int t = 0;
for (int i = 0; i < 5; i++)
{
if (a[i] == b[i])
{
t++;
}
}
if (t == 5)
cout << "两个数组相等\n";
else
cout << "两数组不相等\n";
}
vector比较 和基本数组差不多
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> a(10,0);
vector<int> b(10,0);
for (auto i = a.begin(); i != a.end(); i++) // 也可以用int i = 0;
{
cin >> *i;
}
for (int j = 0; j < 10; j++)
{
cin >> b[j];
}
int t = 0;
for (int i = 0; i < 10; i++)
{
if (a[i] == b[i])
{
t++;
}
}
if (t == 5)
cout << "两个数组相等\n";
else
cout << "两数组不相等\n";
return 0;
}
3.39 分别用c++和c比较两个字符串
//当长度不同时比较首字母大小
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main()
{
string str1("hello wold"); // 用c++比较
string str2("sello C");
if (str1 == str2)
cout << "str1 = str2\n";
else if (str1 > str2)
cout << "str1 > str2\n";
else
cout << "str1 < str2\n";
char str_c1[] = "hello world"; // 用c比较
char str_c2[] = "sello c";
auto result = strcmp(str_c1,str_c2);
if (result == 0)
cout << "str_c1 = str_c2\n";
else if (result > 0)
cout << "str_c1 > str_c2\n";
else
cout << "str_c1 < str_c2\n";
return 0;
}