首页 > 其他分享 >char[] 与 string

char[] 与 string

时间:2024-08-24 14:16:53浏览次数:9  
标签:下标 string 复杂度 原串 char 函数

关于输入输出

char[] 能用 C 风格输入输出,string 通常不行,所以使用 string 通常顺便解绑 cin,cout。

解绑后的 cin,cout 不要和 getchar 快读同时使用。

关于函数传参

char[] 传入函数中不会占用格外内存,也就是默认取地址的,在函数中更改会直接影响原串。

string 传入函数中是搞一个新的 string 来复制原串,所以每次都会单独占一个内存,但同时函数中更改不会直接影响原串,解决方法是传参的时候取地址。

关于获取长度

strlen(char[]) 的复杂度为 \(O(len)\) 的,一些时候会被坑死,所以千万不能重复调用。

string.size 的复杂度为 \(O(1)\) 的,这是十分优秀的。

关于空间

char[] 本质是数组,string 本质是 vector,所以 string 是有动态空间的,但同时好多时候 string 需要手动扩容后才能正常用,比较典的就是如果直接调用 string 没申请到的下标会直接 RE 掉。

string 和 vector 一样可以 push_back 和 pop_back。

关于拼接

string 比较方便的一点可以直接将两个 string 拼在一起,用 + 连接,但这个复杂度和 char[] 手动接是一样的都会 \(O(n+m)\),只是写着方便。

关于下标

两者下标都是从 \(0\) 开始,char 可以通过 \(+1\) 变成下标从 \(1\) 开始,同时长度不变;string 可以写成 " "+string,但是长度会 \(+1\)。

标签:下标,string,复杂度,原串,char,函数
From: https://www.cnblogs.com/Charlieljk/p/18377711

相关文章

  • MySQL 中 Varchar(50) 和 varchar(500) 有什么区别?
    问题我们在设计表结构的时候,设计规范里面有一条如下规则:对于可变长度的字段,在满足条件的前提下,尽可能使用较短的变长字段长度。为什么这么规定,主要基于两个方面基于存储空间的考虑基于性能的考虑网上说Varchar(50)和varchar(500)存储空间上是一样的,真的是这样吗?基于性能......
  • Java 12 新特性—新增 String API
    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入juc源码解析阶段4、深入jdk其余源码解析......
  • 第五题:最长回文子串(Longest Palindromic Substring)
    题目描述:给定一个字符串 s,找到 s 中最长的回文子串。示例:输入:s="babad"输出:"bab" 或 "aba"输入:s="cbbd"输出:"bb"要求: 你需要找出 s 中的最长回文子串。解题思路方法1:中心扩展法回文字符串的特点是对称的,因此我们可以从每个字符(或字符间隙)作为中心,向两......
  • Echarts可视化大屏框架
    效果图展示: 源码:<template><div><!--Header部分--><divclass="heads"><h3>大数据可视化分析</h3><span>2023-12-1212:20:45</span></div>&l......
  • echarts 3D 柱状图
    今天开发一个驾驶舱大屏,里面有柱状图的图表,而且是3D的,搜索可视化社区,有找到一个示例【https://www.makeapie.cn/echarts_content/xH0E6KFMcG.html】,纵向的柱子,但我开发的大屏,柱状图有横向、纵向两种,所以在此记录一下,便于下一次开发。注意:示例中是直接把echarts挂在了window上,作为......
  • 第6篇 好用免费的开发AI:FittenCode Chart,功能类似chatgpt
    你所不知道的免费,又好用的AI,帮助你提高工作效率;1.打开vs,点击扩展》管理工具,然后搜索FittenCode,安装下载完成后,重新打开vs2.打开vs,管理工具,就会出现FittenCode,选择openchatwindow,解决方案管理下就会出现FittencodeChart,3.输入问题,就可以对话,fittenCode就会给出解决方......
  • python 06-标准库:random、string、webbrowser、email模块
    random、string模块importrandomimportstringprint(random.random())#任意-个float数字print(random.randint(1,10))#1-10之间包括1和18中任意一个整数print(random.choice([1,2,3]))#1,2,3这几个数字里面任意一个print(random.choices([1,2,3],k=2))......
  • 3.1 string(字符串)
    4.1.string(字符串)SET/SETEX/MSET/MSETNXGET/MGETGETSETINCR/DECRDEL1.设置键值set设置的数据没有额外操作时,是不会过期的。setkeyvalue设置键为name值为yuan的数据setnameyuansetnamerain#一个变量可以设置多次注意:redis中的所有数据操作,如果设置的......
  • lazarus 3.4+fpc trunk编译tachart控件出错
    lazarus3.4+fpctrunk编译tachart控件出错原因:最新的fpc禁止访问private引起的修改方法:1、打开lazarus\components\tachart\tadatatools.pas将functionTDataPointDistanceTool.FindRef(APoint:TPoint;AMode:TDataPointMode;ADest:TDataPointTool.TPointRef;AOtherEndS......
  • Pycharm连接mysql数据库
    importpymysql1、需要使用pymysql在三方库;importpymysqlconfig={'user':'investbank_newforp','password':'m@H2wp4B@7e9','host':'192.168.154.241','port':15213,......