C++中find函数的返回值可以和-1或0比较吗????
展开全部
find函数有很多个。有些可以,有些不可以。
(1)string类里的find函数。此函数的原型有四个:
size_t find (const string& str, size_t pos = 0) const noexcept;
size_t find (const char* s, size_t pos = 0) const;
size_t find (const char* s, size_t pos, size_type n) const;
size_t find (char c, size_t pos = 0) const noexcept;
均返回size_t,因此可以与0比较。与-1比较的话会导致-1转换为无符号整型而变成一个非常大的数。
(2)(unordered_)(multi)set/map类里的find函数,或algorithm头文件里的find函数。这些find函数返回相应的迭代器,因此不能与-1或0比较。
(1)string类里的find函数。此函数的原型有四个:
size_t find (const string& str, size_t pos = 0) const noexcept;
size_t find (const char* s, size_t pos = 0) const;
size_t find (const char* s, size_t pos, size_type n) const;
size_t find (char c, size_t pos = 0) const noexcept;
均返回size_t,因此可以与0比较。与-1比较的话会导致-1转换为无符号整型而变成一个非常大的数。
(2)(unordered_)(multi)set/map类里的find函数,或algorithm头文件里的find函数。这些find函数返回相应的迭代器,因此不能与-1或0比较。
展开全部
?
哪个find ????
如果是 STL的.
一般是 map 和 Hash_map
iter = obj.find(key);
if (iter != obj.end())
{
// find 有内容 do something
}
STL 用迭代器判断 , 没印象用 -1 . 0 返回值判断...
哪个find ????
如果是 STL的.
一般是 map 和 Hash_map
iter = obj.find(key);
if (iter != obj.end())
{
// find 有内容 do something
}
STL 用迭代器判断 , 没印象用 -1 . 0 返回值判断...
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CString 中find返回的就是int型的,可以比较,如果是自己写的就要看类型,其它类要看比较符是否有重载,如果有重载就能比较。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以的,只要类型相同。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该可以。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询