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

原创 2016年08月29日 18:48:12

 一、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才得到尾元素的引用。














版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

C++ Primer 学习笔记——第3章:标准库类型 vector

第3章:标准库类型 vector

c++ primer学习笔记3-标准库类型string&vector

1.string 与getline

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

《c++ primer》学习笔记 第三章 标准库类型(string, vector,bitset)

《c++ primer》学习笔记 第三章 标准库类型(string, vector,bitset) 1 String类 (1)关于getline()函数 Getline()有两个原型: (1)...

c++primer学习笔记-----3.3标准库类型vector

标准库类型vector 表示对象的集合,其中所有对象的类型都相同。集合中的每个对象都有一个与之对应的索引(下标),索引用于访问对象。它又被称为容器,第二部分将对容器进行更为详细的介绍。要想使用vect...

c++primer学习笔记(3.3)标准库vector类型

3.3标准库vector类型 #include using std::vector; vector不是一种数据类型,它是一种类模版。 初始化vector对象的方法: vector i...

C++标准库类型vector学习笔记

标准库类型vector表示对象的集合,其中所有对象的类型都相同。集合中的每个对象都有一个与之对应的索引,索引用于访问对象。因为vector“容纳”其他对象,所以它也常被称为容器。 要想用vecto...

C++ Primer学习笔记(11)——(转)c++ 标准库的各种容器(vector,deque,map,set,unordered_map,unordered_set,list)的性能考虑

声明:此文章转自truexf 的博客,自觉他总结的比我好,故收藏于此,共学习之用。谢谢大神分享!

【C++ Primer】【学习笔记】【第三章】标准库类型之:vector类型

标准库vector类型 vector称为容器,因为它可以包含其他对象,一个容器中的所有对象都必须是同一种类型的。 vector不是一种数据类型,而是一个类模板,可用来定义任意多种数据类型。如:v...

C++ Primer 学习笔记(4)——标准库string类型

之所以空着笔记三,是因为3的内容要先于4,但似乎课本不是这么认为的。 string对象的定义和初始化 几种方式: string s1; //s1 is empty string s2(s1);...

C++ Primer 学习笔记(二)——标准库类型

一、命名空间的using指示与using声明 1、using声明 (1)一个using声明一次只引入一个命名空间成员。 (2)using声明的作用域为:从using声明点开始,直到包含该usin...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)