当前位置: 首页 > java >正文

【基础知识补充】标准库类型:string和vector

标准库类型:string

         string 表示可变长的字符序列 

/*** ---------------------------------------------------------------------------* 一、定义和初始化string对象:*      拷贝初始化:使用等号"="初始化一个变量。*      直接初始化:使用圆括号"()",里面放初始值。* *      多值初始化*/
string s1,s6;                   // 默认初始化,是一个空字符串
string s2 = "hello";            // 【拷贝初始化】等价于:s2("hello");  s2是该字符串字面值的副本
string s3(s2);                  // 【直接初始化】等价于:s3 = s2;      s3是s2的副本
string s4(10,'c');              // 【直接初始化-多值】s4的内容是 cccccccccc。由连续10个字符c组成的串
string s5 = string(10,'d');     // 【拷贝初始化-多值】显式的创建一个(临时)对象拷贝给s5 /*** ---------------------------------------------------------------------------* 二、string对象上的操作:*  读写string对象:*      os << s   -->将s写到输出流os当中,返回os*      is >> s   -->从输入流is中读取字符串赋给s,遇到空白停止,返回is*  读取一整行:getline(is,s)*      getline函数代替原来的 >> 运算符。参数是一个输入流和一个string对象。遇到换行符停止*  判断s对象是否为空:s.empty() *      返回一个布尔值。*  返回s对象的字符长度:s.size() 、s.length()*      返回一个string::size_type类型的值*  返回s中第n个字符的引用:v[n]*          位置下标从0开始*  比较string对象:比较对象中的字符,依照(大小写敏感的)字典顺序*      ==,!=,>,>=,<,<=*      比较规则:1、两个string对象中字符相同长度不同,比长度。如"qwerr">"qwer"*               2、两个string对象某些对应的位置上不一致,则比较第一对相异字符。如"cba"<"ca"*  拼接string对象:*      两个string对象相加*      字面值和string对象相加**/
cin >> s6;                      // 键盘输入字符赋值给s6
cout << s6 <<endl;              // 输出s6对象内容cout << s1.size() <<endl;       // 输出:0
cout << s1.empty() <<endl;      // 输出:1,代表true,为空
cout << s2.size() << endl;      // 输出:5
cout << s2.length() << endl;    // 输出:5
cout << s2.empty() <<endl;      // 输出:0,代表false,不为空cout << s2[2] <<endl;           // 输出:l,下标从0开始cout << (s2 == s3) << endl;     // 输出:1,代表true,两个对象相等
cout << (s2 == s4) << endl;     // 输出:0,代表false,两个对象不相等
cout << (s4 < s5) << endl;      // 输出:1,代表true,s4 小于 s5【比较字符大小】cout << (s2 + s4) << endl;      // 输出:hellocccccccccc
cout << (s2 + " hi") << endl;   // 输出:hello hi/*** ---------------------------------------------------------------------------* 三、处理string对象中的字符*  判断某字符特性,引入cctype头文件*/

 标准库类型:vector(容器)

         1、vector表示对象的集合,其中所有对象的类型都相同。但不包含引用(引用不是对象)
         2、集合中的每个对象都有一个与之对应的索引(即下标),索引用于访问对象
         3、vector是一个类模板。【编译器根据模板创建类或函数的过程称为实例化】

/**   * ---------------------------------------------------------------------------* 一、定义和初始化vector对象*      拷贝初始化:使用等号"="初始化一个变量。*      直接初始化:使用花括号"{}",里面放列表初始值。*      提供一个类内初始值:*/
vector<int> v1;                 //默认初始化,是一个空vector,元素类型是int型
vector<int> v2{1,2,3,4,5,6,7};  //等价于:v2 = {1,2,3,4,5,6,7};  每个元素被赋予了初始值
vector<int> v3(v2);             //等价于:v3 = v2;               v3是v2的副本
vector<string> v4(7,"hi");     //等价于:v4 = vector(10,"hi");   包含了7个重复的元素,每个元素的值都被初始化为"hi"
vector<int> v5(7);             //7个元素,每个都初始化为0/**   * ---------------------------------------------------------------------------* 二、vector对象上的操作*      判断v对象是否为空:v.empty()*          返回一个布尔值*      返回v中元素的个数:v.size()*          返回一个vector<int>::size_type类型的值*      返回v中第n个位子上的元素的引用:v[n]*          位置下标从0开始*      比较vector对象:比较对象中的元素值,依照(大小写敏感的)字典顺序*          ==,!=,>,>=,<,<=* *      向vector对象中添加元素:v.push_back()*          把一个值当成vector对象的尾元素压到对象尾端*          隐含要求:如果循环体内部包含有向vector对象添加元素的语句,则不能使用范围for循环*      */
cout << v1.size() <<endl;       // 输出:0
cout << v1.empty() <<endl;      // 输出:1,代表true,为空
cout << v2.size() << endl;      // 输出:7
cout << v2.empty() <<endl;      // 输出:0,代表false,不为空cout << v2[5] <<endl;           // 输出:6,下标从0开始cout << (v2 == v3) << endl;     // 输出:1,代表true,两个对象相等
cout << (v2 == v5) << endl;     // 输出:0,代表false,两个对象不相等
cout << (v2 < v5) << endl;      // 输出:0,代表false,v4 大于 v5【比较元素1值大小】v2.push_back(8);                //v2中添加元素8for(int &i : v2)                //对于v中的每个元素(注意:i是一个引用,i值改变对应容器中元素值改变)i *= i;                     //求元素值的平方 【*= 把运算符左右侧对象相乘,结果存入左侧运算对象】for(int i : v2)cout<< i<< " ";             //输出:1 4 9 16 25 36 49 64

http://www.xdnf.cn/news/138.html

相关文章:

  • JDBC 与 MyBatis 详解:从基础到实践
  • 07_Docker 资源限制
  • 软件研发技术团队管理规范
  • 安卓手机如何改ip地址教程
  • ETL数据集成平台在交通运输行业的五大应用场景
  • 旅游资源网站登录(jsp+ssm+mysql5.x)
  • LeetCode 259 题全解析:Swift 快速找出“满足条件”的三人组
  • RocketMQ 的详细使用教程
  • 【多目标进化算法】NSGA-II 算法(结合例子)
  • 【C++】 —— 笔试刷题day_19
  • Web3架构下的数据隐私与保护
  • 【数据结构_10】二叉树(2)
  • HarmonyOS:1.4 - HarmonyOS应用程序框架基础
  • Python(21)Python日期时间完全指南:从基础到实战注意事项
  • QT 文件和文件夹操作
  • 基于SpringBoot成绩管理系统设计与实现(源码+文档+部署讲解)
  • SAP系统中MD01与MD02区别
  • 如何使用Python进行自动化的系统管理?
  • 《软件设计师》复习笔记(14.2)——统一建模语言UML、事务关系图
  • TCL 亮相北京 InfoComm China 2025,引领商显智能化变革浪潮
  • AI数据分析与BI可视化结合:解锁企业决策新境界
  • Java 高并发核心:线程池使用详解 + 自定义参数配置全剖析(附源码+面试解析)
  • 基于ubuntu24.10安装NACOS2.5.1的简介
  • PHP腾讯云人脸核身获取Access Token
  • 【ESP32-IDF笔记】06-触摸传感IO配置
  • day1-小白学习JAVA(mac版)---(jdk安装和环境变量配置)
  • 《软件设计师》复习笔记(14.3)——设计模式
  • Java ThreadLocal内存泄漏分析
  • Docker Image export and load and tag
  • 所见即所得的前端 AI 工具 Readdy.ai