fork download
  1. #include <iostream>
  2. #include <list>
  3. #include <vector>
  4.  
  5. std::vector< std::list<int> > & split( const std::list<int> & v,
  6. int delim, std::vector< std::list<int> >& elems) {
  7.  
  8. int i = 0;
  9. std::list<int>::const_iterator it = v.begin();
  10.  
  11. while ( it != v.end()) {
  12. std::list<int> l;
  13. std::list<int>::const_iterator it3 = l.begin();
  14. while ( it != v.end() && *it < delim) {
  15. l.splice( it3++, v, it++ );
  16. }
  17. if( it != v.end()) l.splice( it3++, v, it++ );
  18. elems.push_back( l);
  19. }
  20. return elems;
  21. }
  22.  
  23.  
  24. std::vector< std::list<int> > split( const std::list<int> &v, int delim) {
  25. std::vector< std::list<int> > elems;
  26. split( v, delim, elems);
  27. return elems;
  28. }
  29.  
  30. int main() {
  31. // your code goes here
  32. std::list<int> v = { 1, 2, 3, 503, 5, 6, 502, 7, 510, 3, 500, 5, 9};
  33. std::vector< std::list<int> > vl;
  34. vl = split( v, 500);
  35.  
  36. int i = 0;
  37. while( i < vl.size()) {
  38. std::list<int>::const_iterator it = vl[ i].begin();
  39. while( it != vl[ i].end())
  40. std::cout << *it++;
  41. ++i;
  42. }
  43.  
  44. return 0;
  45. }
Compilation error #stdin compilation error #stdout 0s 3476KB
stdin
Standard input is empty
compilation info
prog.cpp: In function ‘std::vector<std::list<int> >& split(const std::list<int>&, int, std::vector<std::list<int> >&)’:
prog.cpp:15:38: error: no matching function for call to ‘std::list<int>::splice(std::_List_const_iterator<int>::_Self, const std::list<int>&, std::_List_const_iterator<int>::_Self)’
             l.splice( it3++, v, it++ );
                                      ^
prog.cpp:15:38: note: candidates are:
In file included from /usr/include/c++/4.8/list:63:0,
                 from prog.cpp:2:
/usr/include/c++/4.8/bits/stl_list.h:1248:7: note: void std::list<_Tp, _Alloc>::splice(std::list<_Tp, _Alloc>::iterator, std::list<_Tp, _Alloc>&&) [with _Tp = int; _Alloc = std::allocator<int>; std::list<_Tp, _Alloc>::iterator = std::_List_iterator<int>]
       splice(iterator __position, list&& __x)
       ^
/usr/include/c++/4.8/bits/stl_list.h:1248:7: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/4.8/bits/stl_list.h:1263:7: note: void std::list<_Tp, _Alloc>::splice(std::list<_Tp, _Alloc>::iterator, std::list<_Tp, _Alloc>&) [with _Tp = int; _Alloc = std::allocator<int>; std::list<_Tp, _Alloc>::iterator = std::_List_iterator<int>]
       splice(iterator __position, list& __x)
       ^
/usr/include/c++/4.8/bits/stl_list.h:1263:7: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/4.8/bits/stl_list.h:1278:7: note: void std::list<_Tp, _Alloc>::splice(std::list<_Tp, _Alloc>::iterator, std::list<_Tp, _Alloc>&&, std::list<_Tp, _Alloc>::iterator) [with _Tp = int; _Alloc = std::allocator<int>; std::list<_Tp, _Alloc>::iterator = std::_List_iterator<int>]
       splice(iterator __position, list&& __x, iterator __i)
       ^
/usr/include/c++/4.8/bits/stl_list.h:1278:7: note:   no known conversion for argument 1 from ‘std::_List_const_iterator<int>::_Self {aka std::_List_const_iterator<int>}’ to ‘std::list<int>::iterator {aka std::_List_iterator<int>}’
/usr/include/c++/4.8/bits/stl_list.h:1296:7: note: void std::list<_Tp, _Alloc>::splice(std::list<_Tp, _Alloc>::iterator, std::list<_Tp, _Alloc>&, std::list<_Tp, _Alloc>::iterator) [with _Tp = int; _Alloc = std::allocator<int>; std::list<_Tp, _Alloc>::iterator = std::_List_iterator<int>]
       splice(iterator __position, list& __x, iterator __i)
       ^
/usr/include/c++/4.8/bits/stl_list.h:1296:7: note:   no known conversion for argument 1 from ‘std::_List_const_iterator<int>::_Self {aka std::_List_const_iterator<int>}’ to ‘std::list<int>::iterator {aka std::_List_iterator<int>}’
/usr/include/c++/4.8/bits/stl_list.h:1314:7: note: void std::list<_Tp, _Alloc>::splice(std::list<_Tp, _Alloc>::iterator, std::list<_Tp, _Alloc>&&, std::list<_Tp, _Alloc>::iterator, std::list<_Tp, _Alloc>::iterator) [with _Tp = int; _Alloc = std::allocator<int>; std::list<_Tp, _Alloc>::iterator = std::_List_iterator<int>]
       splice(iterator __position, list&& __x, iterator __first,
       ^
/usr/include/c++/4.8/bits/stl_list.h:1314:7: note:   candidate expects 4 arguments, 3 provided
/usr/include/c++/4.8/bits/stl_list.h:1332:7: note: void std::list<_Tp, _Alloc>::splice(std::list<_Tp, _Alloc>::iterator, std::list<_Tp, _Alloc>&, std::list<_Tp, _Alloc>::iterator, std::list<_Tp, _Alloc>::iterator) [with _Tp = int; _Alloc = std::allocator<int>; std::list<_Tp, _Alloc>::iterator = std::_List_iterator<int>]
       splice(iterator __position, list& __x, iterator __first, iterator __last)
       ^
/usr/include/c++/4.8/bits/stl_list.h:1332:7: note:   candidate expects 4 arguments, 3 provided
prog.cpp:17:53: error: no matching function for call to ‘std::list<int>::splice(std::_List_const_iterator<int>::_Self, const std::list<int>&, std::_List_const_iterator<int>::_Self)’
         if( it != v.end()) l.splice( it3++, v, it++ );
                                                     ^
prog.cpp:17:53: note: candidates are:
In file included from /usr/include/c++/4.8/list:63:0,
                 from prog.cpp:2:
/usr/include/c++/4.8/bits/stl_list.h:1248:7: note: void std::list<_Tp, _Alloc>::splice(std::list<_Tp, _Alloc>::iterator, std::list<_Tp, _Alloc>&&) [with _Tp = int; _Alloc = std::allocator<int>; std::list<_Tp, _Alloc>::iterator = std::_List_iterator<int>]
       splice(iterator __position, list&& __x)
       ^
/usr/include/c++/4.8/bits/stl_list.h:1248:7: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/4.8/bits/stl_list.h:1263:7: note: void std::list<_Tp, _Alloc>::splice(std::list<_Tp, _Alloc>::iterator, std::list<_Tp, _Alloc>&) [with _Tp = int; _Alloc = std::allocator<int>; std::list<_Tp, _Alloc>::iterator = std::_List_iterator<int>]
       splice(iterator __position, list& __x)
       ^
/usr/include/c++/4.8/bits/stl_list.h:1263:7: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/4.8/bits/stl_list.h:1278:7: note: void std::list<_Tp, _Alloc>::splice(std::list<_Tp, _Alloc>::iterator, std::list<_Tp, _Alloc>&&, std::list<_Tp, _Alloc>::iterator) [with _Tp = int; _Alloc = std::allocator<int>; std::list<_Tp, _Alloc>::iterator = std::_List_iterator<int>]
       splice(iterator __position, list&& __x, iterator __i)
       ^
/usr/include/c++/4.8/bits/stl_list.h:1278:7: note:   no known conversion for argument 1 from ‘std::_List_const_iterator<int>::_Self {aka std::_List_const_iterator<int>}’ to ‘std::list<int>::iterator {aka std::_List_iterator<int>}’
/usr/include/c++/4.8/bits/stl_list.h:1296:7: note: void std::list<_Tp, _Alloc>::splice(std::list<_Tp, _Alloc>::iterator, std::list<_Tp, _Alloc>&, std::list<_Tp, _Alloc>::iterator) [with _Tp = int; _Alloc = std::allocator<int>; std::list<_Tp, _Alloc>::iterator = std::_List_iterator<int>]
       splice(iterator __position, list& __x, iterator __i)
       ^
/usr/include/c++/4.8/bits/stl_list.h:1296:7: note:   no known conversion for argument 1 from ‘std::_List_const_iterator<int>::_Self {aka std::_List_const_iterator<int>}’ to ‘std::list<int>::iterator {aka std::_List_iterator<int>}’
/usr/include/c++/4.8/bits/stl_list.h:1314:7: note: void std::list<_Tp, _Alloc>::splice(std::list<_Tp, _Alloc>::iterator, std::list<_Tp, _Alloc>&&, std::list<_Tp, _Alloc>::iterator, std::list<_Tp, _Alloc>::iterator) [with _Tp = int; _Alloc = std::allocator<int>; std::list<_Tp, _Alloc>::iterator = std::_List_iterator<int>]
       splice(iterator __position, list&& __x, iterator __first,
       ^
/usr/include/c++/4.8/bits/stl_list.h:1314:7: note:   candidate expects 4 arguments, 3 provided
/usr/include/c++/4.8/bits/stl_list.h:1332:7: note: void std::list<_Tp, _Alloc>::splice(std::list<_Tp, _Alloc>::iterator, std::list<_Tp, _Alloc>&, std::list<_Tp, _Alloc>::iterator, std::list<_Tp, _Alloc>::iterator) [with _Tp = int; _Alloc = std::allocator<int>; std::list<_Tp, _Alloc>::iterator = std::_List_iterator<int>]
       splice(iterator __position, list& __x, iterator __first, iterator __last)
       ^
/usr/include/c++/4.8/bits/stl_list.h:1332:7: note:   candidate expects 4 arguments, 3 provided
prog.cpp:8:9: warning: unused variable ‘i’ [-Wunused-variable]
     int i = 0;
         ^
prog.cpp: In function ‘int main()’:
prog.cpp:37:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  while( i < vl.size()) {
                     ^
stdout
Standard output is empty