C++自学笔记_标准库类型_《C++ Primer》

1.标准库string类型

  1.1 string对象的定义和初始化

string s1;             //默认构造函数,s1为空串
string s2(s1);         //将s2初始化为s1的一个副本
string s3("value");    //将s3初始化为一个字符串字面值副本
string s4(n,‘c‘);      //将s4初始化为字符‘c‘的n个副本

  1.2 string对象的读写

int main(){
  string s;
  cin>>s;
  cout<<s<<endl;
  return 0;
}

  从标准输入读取string,并将读入的串存储在s中。要注意的是下面2点:

    · 读取并忽略开头所有的空白字符(比如空格,换行符,制表符);

    · 读取字符直至再次遇到空白字符,读取终止。

  所以如果输入“  hello world ”,结果输出“hello”。

  1.3 用 getline 读取整行文本

  这个函数接受2个参数:一个输入流对象和一个string对象。

int main(){
   string line;
   while(getline(cin,line))
      cout<<line<<endl;
   return 0;
}

  要注意的是:

    · getline不忽略开头的换行符,当我上来就输入一个换行符的时候,getline会认为我已经输了一行了,于是便停止读入并返回,所以如果第一个字符就是换行符,string参数就会被置为空string。

    · 而getline遇到换行符返回,但是会把换行符从缓冲区内剔除掉,所以下次读出来的时候就没有换行符了。

待续...

 

时间: 2024-08-02 07:16:39

C++自学笔记_标准库类型_《C++ Primer》的相关文章

C++ Primer笔记1_转义字符_标准库类型string_标准库类型vector

1.转义字符 一般有两种方式: \x后紧跟1个或多个十六进制数字.或\后紧跟1.2.3个八进制数字,当中数字部分是字符相应的数值. #include <iostream> using namespace std; int main() { bool b = 10; bool b1 = true; bool b2 = false; cout << b << endl; cout << b1 << endl; cout << b2 <

C++ Primer 学习笔记_7_标准库类型(续1) -- vector类型

 标准库类型(二) --vector类型 引子: vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库将负责管理与存储元素相关的内存. 我们将vector称之为容器,一个容器中的所有对象都必须是同一类型的! [cpp] view plaincopyprint? #include <vector> using std::vector; #include <vector> using std::vector; [模板] vector

C++ Primer 学习笔记_8_标准库类型(续2) -- iterator

 标准库类型(三) --iterator 序言: 迭代器是一种检查容器内元素并遍历容器元素的数据类型. 所有的标准库容器都定义了相应的迭代器类型,而只有少数的容器支持下标操作:因此,现代C++更倾向于使用迭代器而不是下标操作访问容器元素. 正文: 1.容器的iterator类型 每个标准库容器类型都定义了一个名为iterator的成员: [cpp] view plaincopyprint? vector<int>::iterator iter; vector<int>::ite

C++ Primer 学习笔记_9_标准库类型(续3) -- biteset

 标准库类型(四) --biteset 序言: 位是用来保存一组项或条件的yes/no信息[标识]的简洁方法. [cpp] view plaincopyprint? #include <bitset> using std::bitset; #include <bitset> using std::bitset; 正文: 1.bitset对象的定义和初始化 和vector对象不同的是:bitset类型对象的区别在于其长度而不是类型.在定义bitest时,要在尖括号中说明给出他的长

C++ Primer 学习笔记_6_标准库类型 -- 命名空间using与string类型

 标准库类型(一) --命名空间using与string类型 引: 标准库类型是语言组成部分中更基本的哪些数据类型(如:数组.指针)的抽象! C++标准库定义的是高级的抽象数据类型: 1.高级:因为其中反映了更复杂的概念: 2.抽象:因为我们在使用时不需要关心他们是如何表示的,我们只需要知道这些抽象数据类型支持哪些操作就可以了. 正文: 一.命名空间的using声明 1. using std::cin; ::运算符的作用含义是右操作数的名字可以在左操作数的作用域中找到. 格式: [cpp]

标准库类型vector[C++ primer]

vector,表示对象的容器,所有对象类型相同. 定义及初始化: vector<int> a; //默认初始化,空vector,不含元素 vector<int> b(a); //等价于 b=a:b中包含a中所有元素的副本 vector<int> c(n, val); //包含n个重复元素,值均为val vector<int> c(n); //包含n个元素,值默认初始化 vector<int> d{a,b,c,d..} //包含初始值个数的元素,每

C++ Primer 第四版读书笔记(二)之标准库类型

C++定义了一个内容丰富的抽象数据类型标准库,其中最重要的标准库类型是string和vector,它们分别定义了大小可变的字符串和集合.string和vector往往将迭代器用作配套类型,用于访问string中的字符,或者vector中的元素. 另一种标准库类型为bitset,提供了一种抽象方法来操作位的集合. string类型支持长度可变的字符串,vector用于保存一组指定类型的对象. bitset类标准库类型提供了更方便和合理有效的语言级的抽象设施.通过这个类可以把某个值当作位的集合来处理

C++(3)标准库类型

标准库类型(一)--命名空间using与string类型 引: 标准库类型是语言组成部分中更基本的哪些数据类型(如:数组.指针)的抽象! C++标准库定义的是高级的抽象数据类型: 1.高级:因为其中反映了更复杂的概念: 2.抽象:因为我们在使用时不需要关心他们是如何表示的,我们只需要知道这些抽象数据类型支持哪些操作就可以了. 正文: 一.命名空间的using声明 1. using std::cin; ::运算符的作用含义是右操作数的名字可以在左操作数的作用域中找到. 格式: [cpp] view

[学习笔记] Python标准库的学习准备 [转]

Python标准库是Python强大的动力所在,我们已经在前文中有所介绍.由于标准库所涉及的应用很广,所以需要学习一定的背景知识. 硬件原理 这一部份需要了解内存,CPU,磁盘存储以及IO的功能和性能,了解计算机工作的流程,了解指令的概念.这些内容基础而重要. Python标准库的一部份是为了提高系统的性能(比如mmap),所以有必要了解基本的计算机各个组成部分的性能. 操作系统 在了解操作系统时,下面是重点: 1) 操作系统的进程管理,比如什么是UID, PID, daemon 2) 进程之间