繁体   English   中英

什么是C ++中objective-c NSString *的最佳等价物?

[英]What is the best equivalent of objective-c NSString * in C++?

我正在将一个Objective-c应用程序移植到C ++中,并且在任何一种语言中都是相当新的。 在我正在处理的类中,有很多字段是字符串文字NSString或指向字符串NSString *字符串。 C ++中这些字段的最佳等价物是什么: std::stringstd::string *const char *

最初,我认为std::string更像c ++,而const char *更像C,所以我应该使用前者。 我的同事说后者是首选,因为它更快更轻,不涉及复制。 但是,如果我应该在构造函数中将std::string作为引用传递为const std::string & param ,它将仅复制一次。

对于我来说,选择相当于NSString *的最佳选择是什么?

非常感谢您的回复。

NSString是一个不可变的字符串,因此const std::string是正确的选择。 如果你在任何地方都使用它作为参考,你将没有副本。

一般的答案应该是使用std::string 但是,根据您的具体情况,您可以选择const char * 如果您正确使用前者,则不会产生太多的复制惩罚,但您可以获得各种内存安全性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM