在函数中传递只读向量时,冗长真的值得吗?const vector<const string>&

Is the verbosity really worth it when passing read only vector in function? const vector<const string>&

本文关键字:const 值得 真的 string lt gt vector 函数 只读 向量      更新时间:2023-10-16

传递仅读取函数中的向量时,词汇真的值得吗?

const vector<const string>&

我通常有

const vector<string>&

已经足够详细了。现在我看到有些人使用第一个详细版本我想知道这值得吗?

在这种情况下不是。根据程序使用的实际类型来声明参数类型-const vector<string>&const转移词以包括其包含的字符串。也就是说,const vector<string>&不会返回其strings。

的可变引用

具体来说,const vector<const string>&将是非常罕见的发生(即在许多代码库中不存在),通常会痛苦和/或昂贵的转换。仅在输入不需要转换(例如std::vector<std::string>)的情况下使用它。

如评论中所讨论的const vector<const string>&可能不会编译,如果这样做会产生很多其他问题。

但是,如果您确实必须使用Gurantee Constness,则可以使用:const vector<const string*>&

或:const vector<shared_ptr<const string>>&