V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
geekvcn
V2EX  ›  程序员

最近给一个国外 C++项目提交代码的时候发现老外为啥 std::string 都不爱用?

  •  
  •   geekvcn · Jul 30, 2024 · 1835 views
    This topic created in 636 days ago, the information mentioned may be changed or developed.

    大多数情况我都是用 std::string 的,一是能避免缓冲区溢出,二是操作字符串确实方便。但是我看老外代码的时候他们都是用 char 数组,导致我为了不对代码做太大的变动,也用 char 数组,截取字符串靠操作指针偏移和'\0',提取字符串靠遍历,还要考虑传进来的字符串范围定义 buf[]数组避免缓冲区溢出。

    是老外有啥特殊癖好?单纯性能方面放现在的硬件上不值一提吧,换句话说为什么老外不直接把项目改为 C 语言,又要用 C++呢?

    LuckyPocketWatch
        1
    LuckyPocketWatch  
       Jul 30, 2024
    1. 接口限制,需要和老代码兼容
    2.老年程序员,国外 40+,50+的程序员一大把
    3.C 语言程序员,之前用过海康威视的 SDK 示例代码,C++代码用的是 int main(void)..
    4.标新立异,我就遇到过不用 SLT 的,理由是“根本就不存在 STL”
    junkun
        2
    junkun  
       Jul 30, 2024
    有一个问题是 std::string 的实现不确定也不那么稳定,不同 libcpp 的 string 都叫 std::string ,glibcpp 还改过 std::string 的内部实现。
    levelworm
        3
    levelworm  
       Apr 4, 2025 via Android
    str::string 似乎性能不好,可以搜索一下,我也不知道为什么。

    另外用 char array 是不是有可能是对接 C 库或者是自己搭一个 string?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2659 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 15:50 · PVG 23:50 · LAX 08:50 · JFK 11:50
    ♥ Do have faith in what you're doing.