fork(1) download
  1. #include <algorithm>
  2. #include <map>
  3. #include <iterator>
  4. #include <iostream>
  5.  
  6. int main()
  7. {
  8. int a[] = {2,2,3,4,5,6,5,4,3,2,3,4,5,4,3,3,3,3,4,5,4,2,3,4,5,4};
  9. size_t sz = sizeof(a)/sizeof(a[0]);
  10.  
  11. std::map<int, size_t> m;
  12. /*
  13. std::for_each(a, a+sz, [&m](int v) {
  14. m[v]++;
  15. });
  16. */
  17.  
  18. std::copy(a, a+sz, std::inserter(m, m.end()));
  19.  
  20. auto ptrMax = std::max_element(m.begin(), m.end(), [&m](const std::map<int, size_t>::value_type & v1, const std::map<int, size_t>::value_type & v2) {
  21. return v1.second < v2.second;
  22. });
  23.  
  24. std::cout << ptrMax->first << ": " << ptrMax->second;
  25.  
  26.  
  27. }
Compilation error #stdin compilation error #stdout 0s 3276KB
stdin
Standard input is empty
compilation info
In file included from /usr/include/c++/4.9/algorithm:61:0,
                 from prog.cpp:1:
/usr/include/c++/4.9/bits/stl_algobase.h: In instantiation of 'static _OI std::__copy_move<false, false, std::random_access_iterator_tag>::__copy_m(_II, _II, _OI) [with _II = int*; _OI = std::insert_iterator<std::map<int, unsigned int> >]':
/usr/include/c++/4.9/bits/stl_algobase.h:396:70:   required from '_OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = false; _II = int*; _OI = std::insert_iterator<std::map<int, unsigned int> >]'
/usr/include/c++/4.9/bits/stl_algobase.h:434:38:   required from '_OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = false; _II = int*; _OI = std::insert_iterator<std::map<int, unsigned int> >]'
/usr/include/c++/4.9/bits/stl_algobase.h:466:17:   required from '_OI std::copy(_II, _II, _OI) [with _II = int*; _OI = std::insert_iterator<std::map<int, unsigned int> >]'
prog.cpp:18:46:   required from here
/usr/include/c++/4.9/bits/stl_algobase.h:336:18: error: no match for 'operator=' (operand types are 'std::insert_iterator<std::map<int, unsigned int> >' and 'int')
        *__result = *__first;
                  ^
/usr/include/c++/4.9/bits/stl_algobase.h:336:18: note: candidates are:
In file included from /usr/include/c++/4.9/bits/stl_algobase.h:67:0,
                 from /usr/include/c++/4.9/algorithm:61,
                 from prog.cpp:1:
/usr/include/c++/4.9/bits/stl_iterator.h:639:7: note: std::insert_iterator<_Container>& std::insert_iterator<_Container>::operator=(const typename _Container::value_type&) [with _Container = std::map<int, unsigned int>; typename _Container::value_type = std::pair<const int, unsigned int>]
       operator=(const typename _Container::value_type& __value)
       ^
/usr/include/c++/4.9/bits/stl_iterator.h:639:7: note:   no known conversion for argument 1 from 'int' to 'const value_type& {aka const std::pair<const int, unsigned int>&}'
/usr/include/c++/4.9/bits/stl_iterator.h:647:7: note: std::insert_iterator<_Container>& std::insert_iterator<_Container>::operator=(typename _Container::value_type&&) [with _Container = std::map<int, unsigned int>; typename _Container::value_type = std::pair<const int, unsigned int>]
       operator=(typename _Container::value_type&& __value)
       ^
/usr/include/c++/4.9/bits/stl_iterator.h:647:7: note:   no known conversion for argument 1 from 'int' to 'std::map<int, unsigned int>::value_type&& {aka std::pair<const int, unsigned int>&&}'
/usr/include/c++/4.9/bits/stl_iterator.h:588:11: note: std::insert_iterator<std::map<int, unsigned int> >& std::insert_iterator<std::map<int, unsigned int> >::operator=(const std::insert_iterator<std::map<int, unsigned int> >&)
     class insert_iterator
           ^
/usr/include/c++/4.9/bits/stl_iterator.h:588:11: note:   no known conversion for argument 1 from 'int' to 'const std::insert_iterator<std::map<int, unsigned int> >&'
/usr/include/c++/4.9/bits/stl_iterator.h:588:11: note: std::insert_iterator<std::map<int, unsigned int> >& std::insert_iterator<std::map<int, unsigned int> >::operator=(std::insert_iterator<std::map<int, unsigned int> >&&)
/usr/include/c++/4.9/bits/stl_iterator.h:588:11: note:   no known conversion for argument 1 from 'int' to 'std::insert_iterator<std::map<int, unsigned int> >&&'
stdout
Standard output is empty