-3

如果我声明一个函数:

vector<int> & call(string *target)

我应该如何在函数中使用 target 与另一个字符串进行比较?例如:

string str;
if(str == //string in target){
...
}

作为&target,还是干脆target?另外,回报应该如何?我假设它应该是:

return &some_vector;

因为那是函数声明中的类型。最后,相反的呢?那是:

vector<int> & call(string &target) 

当在函数中并且想要使用字符串时,它是否简单:

*target
4

2 回答 2

2

在你的第一个问题上

if(str == *target){

关于你的第二个问题,我的建议是,不要。看起来您正试图返回对局部变量的引用。这是一个众所周知的新手错误,它只会让你的程序崩溃。

第三个问题是

if(str == target){
于 2013-10-13T21:35:01.530 回答
0

您需要取消引用指针以获取对象。也就是说,使用*

if (str == *target) {

另外,回报应该如何?

您返回的是引用,而不是指针。这意味着您只需要返回对象的名称:

return some_vector;

最后,相反的呢?

如果target是引用(不是指针),则只需使用对象的名称。与此无关。

于 2013-10-13T21:36:15.753 回答