C++学习笔记——标准库类型vector(1)

 一、vector初始化的一些实例

 1、vector<int> v1;                                  //v1是一个空vector,元素为int类型,执行默认初始化
 2、vector<int> v2(10);                          //v2有10个元素,每个值都是0
 3、vector<int> v3(10, 42);                   //v3有10个值,每个值初始化为42
 4、vector<int> v4{ 10 };                      // v4有1个值,为10
 5、vector<int> v5{ 10, 42 };               //v5有两个值,为10,42
 6、vector<string> v6{10};                 //v6有10个值,类型为string的空字符,(强制转换为容量为10的string的vector)
 7、vector<string> v7{ 10, "hi" };      //v7有10个值,每个初始化为“hi”

二、将string类型的一组词(一句话)的所有字符都转换为大写

源代码如下:

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main(){
 vector<string> vStr;
 string s;
 char ch = 'y';
 while (cin >> s){
  vStr.push_back(s);
  cout << "continue ?" << endl;
  cin >> ch;
  if (ch == 'y' || ch == 'Y')                   //每输入一个字符串就在此判断输入是否继续
   cout << "Keep on it !" << endl;
  else{
   cout << "Stop it !" << endl;
   break;
  }
 }
 cout << "The output result is :" << endl;
 for (auto &mem : vStr)
 {                                                                       // 在这里,只有当mem,i为引用时,才可以修改
  for (auto &i : mem) //mem为string,i为char
   i = toupper(i);//改为大写,是通过int类型的转换(应该可以理解为将char转换为int),,,,,,将一组词分为单个词,再将每个词的每个字符逐一转换为大写

   cout << mem << " " << endl;
  
 }//
 //for (auto &i : vStr)
 // i = toupper(i);//不存在string到int的转换函数,这样是不对的

 return 0;

}

三、push_back与利用引用类型

       vec.push_back(),这个函数的意义是在vec的尾后添加元素,所以这个函数无法实现将容器中原初始化为0的元素修改为所期望的值。如果想达到修改的目的,需要将vector中的元素定义一个引用类型的变量,然后再通过该变量的赋值来实现vector内元素的修改。

 四、begin、end与front、back     

        首先,begin和end操作是生成指向容器中第一个元素和尾元素之后位置的迭代器。而front和back是分别返回容器中首元素和尾元素的引用。若想通过迭代器获取首元素及尾元素的引用,则需要解引用。

               auto val = *vec.begin();

               auto last = vec.end();

               auto val2 = *(--last);        //因为vec.end()返回的是尾元素之后位置,所以先拷贝至last,再通过自减一,再解引用,赋值给val2才得到尾元素的引用。














  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值