C++ restore/pass 向量(在 header 中调用什么?)

C++ restore/pass a vector (what to call in the header?)

我在学校学习 C++,我正在为我的学校项目添加一些功能。我们需要编写一个程序,在文件夹中的文件中搜索单词。

我现在想列出所有目录和文件并将它们传回(使用 return),这样我就可以在控制台上显示(输出)它们。

所以我使用了一个向量类型的字符串并推回了我找到的所有路径...... 然后我想用 return 返回(传递)它们,但我得到了错误:

error: cannot convert `std::vector<std::string, std::allocator<std::string> >' to `std::string*' in return

这是一些代码:

string OpenFolder(string path, const string constSearchedWord)


vector<string> vIndex;         //Vektor erzeugen
vector<string>::iterator i;    //Iterator (zum durchlaufen)

...

while ( 0 != ( dirEntry = readdir( dirHandle ) ) )
    {
        string name = dirEntry->d_name;
        fullPath = path + '\' + name;
        vIndex.push_back(fullPath);
    }
    //Den Ordner schliessen
    closedir( dirHandle );

... 如果我想在这个函数中将它写入控制台:

for (i = vIndex.begin(); i < vIndex.end(); ++i)
{
    cout << static_cast<string>(*i) << endl;
}

很容易工作,但我不想在这个函数中将它写入控制台。

我想做

return vIndex;

我认为问题出在 header:

string OpenFolder(string path, const string constSearchedWord)

我试过了

vector OpenFolder(string path, const string constSearchedWord)

但这也没有用。

不知道这里要设置什么:

->???<- OpenFolder(string path, const string constSearchedWord)

更改 return 函数类型 OpenFolder

string OpenFolder(string path, const string constSearchedWord)
~~~~~ should be std::vector < std::string >

此外,

对函数参数使用 const 引用

std::vector<std::string> OpenFolder(const string& path,
                                    const string& constSearchedWord )

如果您想 return 来自方法的字符串向量,则 return 类型需要是字符串向量,即

std::vector<std::string> OpenFolder(string path, const string constSearchedWord)

函数definition/declaration通常采用...

的形式
[return type] [function name]([arguments])

如果您从 OpenFolder 函数 returning vIndex 则 return 类型需要匹配 vIndex 的类型,即vector<string>.