//Vector 是一种类模板,能够存储类型相同的对象,每个对象有个与之对应的索引。
//模板:可以看作是编译器生成类或函数编写的一份说明,编译器根据模板创建或函数的过程称为实例化,模板需要指出其类型。模板<类型> 模板变量;
//模板不能生成为引用,因为引用不是对象,Vector可以嵌套使用。
//C++11之前的容器定义为:vector<vector<int> >,现在为vector<vector<int>>
//容器初始化:vector<T> v1 "一个空vector"
// vector<T> v2(v1) / vector<T> v2 = v1 / vector<T> v2 = v1 / vector<T> v3(n,val) / vector<T> v4(n) / vector<T> v5{a,b,a...} / vector<T> v5 = {a,b,c,...}
// 对于vector<T> v4(n) 省略初始值,库会根据vector中元素的类型给容器中的所有元素赋一个初始值(但有些类必须要进行初始化)
//通过花括号和圆括号区分初始的是元素的数量还是元素值
//如果提供的是花括号,但是其中的值不能用来列表初始化,那么就应该是用来构造vector对象。eg:vector<string> vec{10};//10个默认的初始化元素
//vector 添加元素,push_back;eg: v2.push_back(1);
//vector的一些操作v.empty() ,v.size() ,v.push_back(t) ,v[n](返回第n个位置的引用), v1=v2 ,v1={a,b,c...},v1==v2,v1!=v2, <,<=,>,>=
//vector下标从0 开始
//从cin读入一组词,然后将其变成大写,然后换行输出
#include<iostream>
#include<vector>
#include<string>
using namespace std;
void vector_String(){
vector<string> vec;
int flag = 0;
string str;
string str0;
cout << "please input a string:" << endl;
while (cin >> str)
{
vec.push_back(str);
cout << "你好要输入字符串吗?,Yes or No:" << endl;
cin >> str0;
if (str0 != "Yes")
break;
cout << "input next string:" << endl;
}
for (auto &i : vec) //范围for循环遍历vector中的元素
{
//cout << i << endl;
for (auto &c : i) //因为是string,要变成大写要遍历其每一个字母所以还要加一层范围for
c = toupper(c);
cout << i << endl;
}
}
int vector_Sum(){
vector<int> vInt;
//输入一组整数,输出第一个与最后一个之和,一次第二个和倒数第二个
int ival;
cout << "Please input a set of number:" << endl;
for (int i = 0; i < 10;i++)
{
cin >> ival;
vInt.push_back(ival);
}
if (vInt.size() == 0)
{
cout << "Not a number!";
return -1;
}
for (decltype(vInt.size()) i = 0; i < vInt.size()/2; i += 1)
{
cout << vInt[i] + vInt[vInt.size() - 1 - i]<<" ";
if ((i + 1) % 5 == 0)
cout << endl;
}
if (vInt.size() % 2 != 0)
cout << vInt[vInt.size() / 2];
return 0;
}
int main(){
vector_String();
vector_Sum();
return 0;
}
来源:CSDN
作者:编辑尼撑
链接:https://blog.csdn.net/qq_27211267/article/details/80671105