gpt4 book ai didi

c++ - 用于查找字符串 vector 中元素位置的函数出错 (c++)

转载 作者:行者123 更新时间:2023-11-28 05:17:45 25 4
gpt4 key购买 nike

我有以下函数可以很好地用于查找字符串在字符串 vector 中的位置:

int FindIndexString(vector <string> *Names, string *name)
{
auto it = find(Names->begin(), Names->end(), name->c_str());
if (it == Names->end())
{
error("FindIndexString: %s not found",name->c_str());
}else{
auto index = distance(Names->begin(), it);
return((int)index);
}
}

我需要在提示“自动”说明符的 R 程序中使用此函数,并且我无法使用 C++11 进行编译。

我把函数改成了

int FindIndexString(vector <string> *Names, string *name)
{
vector<string>::iterator it;
it = find(Names->begin(), Names->end(), name->c_str());

int pos = (int)distance(Names->begin(), it);

if(it==Names->end())
{
error("FindIndexString: %s not found",name->c_str());;
}else{
return(pos);
}
}

但它不起作用,我收到以下错误

In function 'int FindIndexString(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::string*)':
F_Utils.cpp:92: error: no matching function for call to 'find(__gnu_cxx::__normal_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, __gnu_cxx::__normal_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, const char*)'

有什么帮助吗?

最佳答案

您需要 #include <algorithm>对于 std::find

关于c++ - 用于查找字符串 vector 中元素位置的函数出错 (c++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42259168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com