char[] 与 string
关于输入输出
char[] 能用 C 风格输入输出,string 通常不行,所以使用 string 通常顺便解绑 cin,cout。
解绑后的 cin,cout 不要和 getchar 快读同时使用。
关于函数传参
char[] 传入函数中不会占用格外内存,也就是默认取地址的,在函数中更改会直接影响原串。
string 传入函数中是搞一个新的 string 来复制原串,所以每次都会单独占一个内存,但同时函数中更改不会直接影响原串,解决方法是传参的时候取地址。
关于获取长度
strlen(char[]) 的复杂度为
string.size() 的复杂度为
关于空间
char[] 本质是数组,string 本质是 vector,所以 string 是有动态空间的,但同时好多时候 string 需要手动扩容后才能正常用,比较典的就是如果直接调用 string 没申请到的下标会直接 RE 掉。
string 和 vector 一样可以 push_back 和 pop_back。
关于拼接
string 比较方便的一点可以直接将两个 string 拼在一起,用 + 连接,但这个复杂度和 char[] 手动接是一样的都是
关于下标
两者下标都是从 " "+string
,但是长度会
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】