Main.cc: In function ‘int quickSelect(std::vector&, int)’: Main.cc:10:5: error: ‘function’ was not declared in this scope function select = [&](int l, int r) { ^~~~~~~~ Main.cc:10:5: note: suggested alternative: ‘union’ function select = [&](int l, int r) { ^~~~~~~~ union Main.cc:10:26: error: expression list treated as compound expression in functional cast [-fpermissive] function select = [&](int l, int r) { ^ Main.cc:10:14: error: expected primary-expression before ‘int’ function select = [&](int l, int r) { ^~~ Main.cc:26:34: error: invalid conversion from ‘std::vector::size_type {aka long unsigned int}’ to ‘fd_set*’ [-fpermissive] return select(0, nums.size() - 1); ~~~~~~~~~~~~^~~ Main.cc:26:37: error: too few arguments to function ‘int select(int, fd_set*, fd_set*, fd_set*, timeval*)’ return select(0, nums.size() - 1); ^ In file included from /usr/include/x86_64-linux-gnu/sys/types.h:197:0, from /usr/include/stdlib.h:394, from /usr/include/c++/7/cstdlib:75, from /usr/include/c++/7/ext/string_conversions.h:41, from /usr/include/c++/7/bits/basic_string.h:6361, from /usr/include/c++/7/string:52, from /usr/include/c++/7/bits/locale_classes.h:40, from /usr/include/c++/7/bits/ios_base.h:41, from /usr/include/c++/7/ios:42, from /usr/include/c++/7/ostream:38, from /usr/include/c++/7/iostream:39, from Main.cc:1: /usr/include/x86_64-linux-gnu/sys/select.h:101:12: note: declared here extern int select (int __nfds, fd_set *__restrict __readfds, ^~~~~~