###前提・実現したいこと
C++のstd::setでJavaのcontainsAllを実現しようとしているのですが,イテレータの値を使ってset内を検索しようとすると以下のエラーが出ます.
おそらく変換ができていないですが,解決方法がわかりませんでした.
お分かりになる方いましたら,ご教示ください.
よろしくお願いします.
Debian 8.7
gcc 4.9.2
g++ 4.9.2
###発生している問題・エラーメッセージ
test.cc: In function ‘int main()’: test.cc:11:20: error: could not convert ‘st1.std::set<_Key, _Compare, _Alloc>::find<int, std::less<int>, std::allocator<int> >((* & it.std::_Rb_tree_const_iterator<_Tp>::operator*<int>()))’ from ‘std::set<int>::iterator {aka std::_Rb_tree_const_iterator<int>}’ to ‘bool’ if (st1.find(*it)) cnt++; ^
###該当のソースコード
#include <iostream> #include <set> int main() { std::set< int > st1{1, 2, 3}; std::set< int > st2{1, 2}; int cnt = 0; for (auto it = st2.begin(); it != st2.end(); it++) if (st1.find(*it)) cnt++; if (cnt == st2.size()) std::cout << "st2 all contans in st1" << std::endl; return 0; }
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。