c++ map中如何使用algorithm中的find
find(mapStr.begin(),mapStr.end(),key);这种写法报错,请大侠帮忙看看。你们说的我都知道,我现在是想不用map的成员函数find,而用标...
find(mapStr.begin(),mapStr.end(), key);
这种写法报错,请大侠帮忙看看。
你们说的我都知道,我现在是想不用map的成员函数find,而用标准动态库头文件algorithm中的find函数。 展开
这种写法报错,请大侠帮忙看看。
你们说的我都知道,我现在是想不用map的成员函数find,而用标准动态库头文件algorithm中的find函数。 展开
3个回答
展开全部
find是map对象的方法,举个例子吧!
map<int,char> m;
map<int,char>::iterator it;
it=m.find(10);
这样才对。
你说的是algorithm里面的find()啊!这是algorithm头文件里面的原型
template<class _InIt,
class _Ty> inline
_InIt _Find(_InIt _First, _InIt _Last, const _Ty& _Val)
{ // find first matching _Val
for (; _First != _Last; ++_First)
if (*_First == _Val)
break;
return (_First);
}
它是一个有返回值的函数,所以你还应该定义一个迭代器,
it=find(mapStr.begin(),mapStr.end(), key);
map<int,char> m;
map<int,char>::iterator it;
it=m.find(10);
这样才对。
你说的是algorithm里面的find()啊!这是algorithm头文件里面的原型
template<class _InIt,
class _Ty> inline
_InIt _Find(_InIt _First, _InIt _Last, const _Ty& _Val)
{ // find first matching _Val
for (; _First != _Last; ++_First)
if (*_First == _Val)
break;
return (_First);
}
它是一个有返回值的函数,所以你还应该定义一个迭代器,
it=find(mapStr.begin(),mapStr.end(), key);
追问
有迭代器,编译报错: error: no match for 'operator==' in '__first.std::_Rb_tree_iterator::operator* [with _Tp = std::pair, std::basic_string >, std::_Rb_tree_iterator::reference = std::pair, std::basic_string >&]() == __val'
我看网上说需要重载'operator=='
追答
那请问你的mapstr是怎么定义的,键值是什么类型的?
TableDI
2024-07-18 广告
2024-07-18 广告
VLOOKUP是Excel中用于垂直查找的函数,其基本用法包括四个参数:1. 查找值:即在数据表首列中需要搜索的值。2. 数据表:包含查找值的单元格区域或数组。3. 返回值所在列数:指定返回查询区域中第几列的值。4. 查找方式:选择精确匹配...
点击进入详情页
本回答由TableDI提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询