C++程序设计 string(字符串类) vector(容器类).

Slides:



Advertisements
Similar presentations
1 第 3 章 C++ 中的条件与循环 第 3 次见面! acm.nefu.edu.cn/C++_03.ppt.
Advertisements

C++语言程序设计教程 第5章 构造数据类型 第6章 C++程序的结构.
元宵猜燈謎.
第 2 章 初探 C++.
3.囚绿记.
课程概况 加入班级QQ群,便于及时沟通和资料共享。 课程教学的组成:
第4章 数组 数组是由一定数目的同类元素顺序排列而成的结构类型数据 一个数组在内存占有一片连续的存储区域 数组名是存储空间的首地址
第八章 类和对象.
C++程序设计 王希 图书馆三楼办公室.
C++的檔案處理 綠園.
走向C++之路 WindyWinter WindyWinter感谢诸位前来捧场。
struct 可以在同一個名稱下擁有多種資料型態。使用struct能讓資料的存取和處理更為靈活。
資料大樓 --談指標與陣列 綠園.
函數(一) 自訂函數、遞迴函數 綠園.
程序设计II 第三讲 字符串处理.
教材 《C++程序设计》.谭浩强. 清华大学出版社 王雪晶
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
第五章 模 板.
第一章 程序的基本结构. 第一章 程序的基本结构 教材及授课结构 本章目标 基本内容 扩展阅读 上机指导 应用举例 习题.
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
Object-Oriented Programming in C++ 第一章 C++的初步知识
前處理指令可以要求前處理器 (preprocessor) 在程式編譯之前,先進行加入其它檔案的內容、文字取代以及選擇性編譯等工作。
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
C++语言程序设计教程 第7章 类与对象 第7章 类与对象.
计算机网络讲义 第5章 批量数据处理—数组 一维数组 排序和查找 二维数组 字符串.
第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.
C++语言程序设计 第二章 C++简单程序设计.
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
C++语言程序设计 第十一章 流类库与输入/输出.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
第十三讲 文件流与 输出输入重载.
C++ 程式設計 基礎篇 張啟中 Chang Chi-Chung.
C++大学基础教程 第3章 C++控制语句 北京科技大学 信息基础科学系.
C++大学基础教程 第11章 多态性 北京科技大学 信息基础科学系 2019/4/8 北京科技大学.
Name1..hour //加班時數 name2..hour //請假時數
第二章 基本数据类型及运算 C数据类型概述 基本数据类型 运算符和表达式 混合运算与类型转换 数据的输入输出 顺序程序设计举例.
Chapter 2 & Chapter 3.
C++语言程序设计 C++语言程序设计 第五章 函数 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
屏東縣海豐國小 六年乙班 二十六號 游怡靜.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
物件導向程式設計 CH2.
C++的檔案處理 綠園.
第11章 從C到C++語言 11-1 C++語言的基礎 11-2 C++語言的資料型態與運算子 11-3 C++語言的輸出與輸入
<编程达人入门课程> 本节内容 字符与字符串 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
C++程式設計入門 變數與運算子 作者:黃建庭.
C++大学基础教程 第10章 运算符重载 北京科技大学 2019/5/7 北京科技大学.
第二章 类型、对象、运算符和表达式.
智慧財產權宣導 ● 仿冒品篇 ●.
C/C++基礎程式設計班 C++: 物件的使用、參考、重載函式 講師:林業峻 CSIE, NTU 3/28, 2015.
第 8 章 标准模板库STL 陈哲 副教授 南京航空航天大学 计算机科学与技术学院.
#include <iostream.h>
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
C++语言程序设计 第十章 C++标准模板库 成都信息工程学院计算机系.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
《数据结构与算法设计》第一部分 面向对象的C++程序设计基础.
C++程序设计 概述 潘荣江 山东大学软件学院.
Oop7 字串 String.
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
變數與資料型態  綠園.
C++程序语言设计 Chapter 14: Templates.
資料!你家住哪裏? --談指標 綠園.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

C++程序设计 string(字符串类) vector(容器类)

string对象的定义和初始化 为了在程序中使用string类型,必须包含string头文件,并导入名字空间,如下: #include <string> using namespace std; string 类对象的定义和初始化 string s1; // 默认初始化,对象s1是个空字符 string s2="hello"; //复制初始化 string s3("kitty"); // 直接初始化 string s4=s2; //复制s2的值到对象s3

string对象的输入输出 } 【例 3.1】string对象的输入和输出操作。 #include <iostream> #include <string> using namespace std; int main( ) { string s1, s2;// 定义s1、s2,并初始化s1、s2为空字符串 // 依次读取字符串一赋给s1,字符串二赋给s2 cin >> s1 >> s2; // 输入 hello world <CR> cout << s1<< s2 << endl; // 输出s1和s2 return 0; }

string对象的操作 1.string的大小和容量函数 一个C++字符串存在3种大小,相应的函数分别是: 函数size( )和length( )等价,都返回string对象中字符个数。函数empty( )判断字符串是否为空,判断字符串是否空也可以利用函数size( )或者length( ),将长度与0比较;

string对象的操作 string的大小和容量函数的使用。 #include <iostream> #include <string> using namespace std; int main( ) { string s("Hello World!"); // s初始化为"Hello World!" cout << s.length( ) << endl;//访问对象的成员用.操作符 cout << s.size( ) << endl; if ( s.empty( ) ) cout << "s 是空串" << endl; else cout << "s 长度是" << s.size( ) << endl; return 0; }

string对象的操作 2.string关系运算 例如: string subStr = "Hello"; string phrase = "Hello World"; string str = "Hi"; 如果两两比较,则subStr<phrase,str>subStr,str>phrase。

string对象的操作 3.string对象的赋值 string对象的赋值可使用操作符运算符=,如: string strTo, strFrom("hello"); strTo = strFrom; strFrom ="C++";

string对象的操作 4.string对象相加 相加指字符串连接,支持string对象和string对象、string对象与const char*对象、string对象与char对象,可以通过使用加运算符(+)或复合赋值运算符(+=)连接,结果生成一个新的string对象,例如 string s1("Hello "); string s2("World\n"); 下面通过加法生成新的string对象: string s3 = s1 + s2; // s3是:Hello World\n, string + string string s4 = s1 + "Kitty"; // s4是:Hello Kitty string + 字符串字面值

string对象的操作 5.string对象的字符元素存取 string类型支持通过下标运算符[ ]访问其中的字符元素,下标运算符[ ],string对象的下标从0开始,如果s是一个string对象且s不空,则s[0]就是字符串的第一个字符,s[1]就表示第二个字符,而s[s.size( )-1]则表示s的最后一个字符。 例 string s1("Hello"); cout<<s1[0]<<s1[s1.size()-1]<<endl; //输出Ho

标准库vector类型 vector称为容器,格式是将数据类型放在vector后面的尖括号中,例如: vector<int> ivec; // ivec可存取int类型的元素 vector<double> dvec; // dvec可存取double类型元素 vector<string> svec; // svec可存取string类型元素 为了在程序中使用vector类型,必须包含vector头文件,并导入名字空间,如下: #include <vector> using namespace std; vector<int> ivec;

vector对象的定义和初始化 1. vector<T> iv1; 2. vector<int> iv2(10, -1); 创建一个包含10个int类型数据的vector,每个元素都初始化为-1; vector<string> sv1(10, "hi!"); 创建一个包含10个string类型数据的vector,每个元素都初始化为"hi!"。

vector对象的定义和初始化 3. vector<T> v2(v1) 或 vector<T> v2=v1 利用一个已经存在的对象来初始化 如: vector<int> iv1(10,-1); vector<int> iv2(iv1); // 通过从iv1复制元素来创建iv2 vector<int> iv3=iv1; // 通过从iv1复制元素来创建iv3 4. vector<T> v4(n) 创建一个包含n个T类型数据的vector对象,vector中元素的初始化,取决于vector中存储的元素的数据类型,如果vector保存基本数据类型的元素(如int、float),则用0初始化每个元素。 vector<float> fvec(10); // 10个元素,初始化为0

vector对象的操作 vector的大小和容量函数 vector<int> iv1(10, -1); vector的empty( )和size( )函数与string类似,size( )返回元素的个数。 如: vector<int> iv1(10, -1); cout<<"The size of iv1: "<< iv1.size()<<endl; //输出: The size of iv1: 10

vector对象的操作 2.向vector中添加元素 push_back( )函数将一个新元素添加到vector对象的后面,也就是“尾插”。 例: string word="Hello Kitty";// 定义一个string类对象并初始化 vector<string> svec; // 定义一个空vector svec.push_back(word); // word尾插到svec中

vector对象的操作 3.vector的下标操作 4.删除vector中的元素 vector支持通过下标运算符[ ]访问元素,下标从0开始,如果ivec是一个vector<int>对象且ivec不空,则ivec[0]就是ivec的第一个字符,ivec[1]表示第二个字符,ivec[ivec.size( )-1]表示ivec的最后一个元素。 4.删除vector中的元素 pop_back( ):功能是删除vector中最后一个元素

vector对象的操作 运行结果: #include <iostream> The size of iv: 2 1, 2 The size of iv: 1 1 #include <iostream> #include <vector> using namespace std; int main( ) { vector<int> iv; iv.push_back( 1 ); // 填充iv iv.push_back( 2 ); cout<<"The size of iv: "<<iv.size()<<endl; cout << iv[0] << ", "<<iv[1]<<endl; // 输出iv[0]和iv[1] ivec.pop_back( ); // 删除最后一个元素 cout << iv[0] <<endl; return 0; }