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>
.
我在学校学习 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>
.