gpt4 book ai didi

c++ - vector <字符串> 或 vector <字符 *>?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:10 25 4
gpt4 key购买 nike

问题:

  • 有什么区别:

    • vector<string>vector<char *>
  • 我将如何传递数据类型的值:string一个函数,专门接受:

    • const char *

例如:

 vector<string> args(argv, argv + argc);

vector<string>::iterator i;

void foo (const char *); //*i
  • 我明白使用 vector<char *> : 我必须复制数据以及指针

编辑:

感谢输入!

最佳答案

这实际上与 vector 无关。

char* 是一个指针,它可能指向也可能不指向有效的字符串数据。

A std::string是一个字符串类,封装了构成字符串的所有必需数据,以及分配和释放功能。

如果您将 std::string 存储在 vector 中或其他任何地方,那么一切都会正常工作

如果存储 char 指针,则必须完成分配和释放内存、确保指针只指向有意义的字符串数据、确定字符串的长度等所有艰苦的工作。

并且由于许多 C API 以及 C++ 标准库的一部分都需要 char*,因此 string 类具有 c_str () 函数返回一个 char*

关于c++ - vector <字符串> 或 vector <字符 *>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/550035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com