gpt4 book ai didi

c++ - 将字符串文字传递给 std::map::find(..)

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:24:17 26 4
gpt4 key购买 nike

我有一个 std::map:

std::map<std::string, std::string>

我将字符串文字传递给 find 方法。显然,我可以传递一个字符串文字,例如

.find("blah");

但是,我想预先声明它,而不是对字符串进行硬编码,所以我现在有几个选择:

const std::string mystring = "blah";
const char mystring[] = "blah";
static const char * mystring = "blah";

它们都有效。 (或至少编译)。我的问题是,我应该使用哪一个?与对方相比的优势/劣势是什么?

最佳答案

假设您的映射由 std::string 键控(我认为所有三个选择都必须编译),那么第一个更有效。您将创建一个字符串对象,并通过引用将其传递给对 find 的每次调用。其他的将导致为每个 find 创建一个临时字符串对象。

关于c++ - 将字符串文字传递给 std::map::find(..),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2463855/

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