gpt4 book ai didi

c++ - 在容器中存储常量字符串文字

转载 作者:行者123 更新时间:2023-12-01 23:22:23 24 4
gpt4 key购买 nike

我有一个结构 foo bar形式 struct foo { const char* s, ... };和一个 std::vector<foo> v;我想 push_back几个foos 的常数值成员字段,即

bar.push_back({ "1", /*...*/ });
bar.push_back({ "2", /*...*/ });
bar.push_back({ "3", /*...*/ });
//...

现在,如果我没有完全错的话,这是不安全的,因为字符串文字的生命周期被限制在初始化器花括号的范围内。所以,字符串文字的生命周期 "1"应该已经在第二行结束 push_back .

我们该如何应对?我们真的需要创建第二个容器 strong std::string的并传递相应的 c_str()指向 bar 的指针?

最佳答案

只要您仅使用 string literals 初始化 const char *s ,这是安全的。它们的生命周期与您的程序的生命周期相同。

关于c++ - 在容器中存储常量字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67835443/

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