C++ Vector容器

亡梦爱人 提交于 2019-12-02 04:54:43

//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;
}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!