I am new in c++. When I run my code got this error 🙁
Big Sorting.cpp: In function ‘int main(int, const char**)’:
Big Sorting.cpp:13:22: error: no matching function for call to ‘std::vector >::push_back(int&)’
v.push_back(m);
^
In file included from /usr/include/c++/8.1.1/vector:64,
from Big Sorting.cpp:2:
/usr/include/c++/8.1.1/bits/stl_vector.h:1074:7: note: candidate: ‘void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp
= std::__cxx11::basic_string; _Alloc = std::allocator >; std::vector<_Tp,
_Alloc>::value_type = std::__cxx11::basic_string]’
push_back(const value_type& __x)
^~~~~~~~~
/usr/include/c++/8.1.1/bits/stl_vector.h:1074:7: note: no known conversion for argument 1 from ‘int’ to ‘const value_type&’ {aka
‘const std::__cxx11::basic_string&’}
/usr/include/c++/8.1.1/bits/stl_vector.h:1090:7: note: candidate: ‘void std::vector<_Tp, _Alloc>::push_back(std::vector<_Tp,
_Alloc>::value_type&&) [with _Tp = std::__cxx11::basic_string; _Alloc = std::allocator >; std::vector<_Tp, _Alloc>::value_type =
std::__cxx11::basic_string]’
push_back(value_type&& __x)
^~~~~~~~~
/usr/include/c++/8.1.1/bits/stl_vector.h:1090:7: note: no known conversion for argument 1 from ‘int’ to
‘std::vector >::value_type&&’ {aka
‘std::__cxx11::basic_string&&’}
here is my code
#include <iostream>
#include <vector>
#include <algorithm>
int main(int argc, char const *argv[]) {
std::vector<std::string> v;
int n, m;
std::cin >> n;
for (size_t i = 0; i < n; i++) {
std::cin >> m;
v.push_back(m);
}
sort(v.begin(), v.end());
for(int i = 0; i < v.size(); i++){
std::cout << v[i] << '\n';
}
return 0;
}
Best Answer
You are reading
int
variablem
and trying to put it into a vector of strings. You should usestd::vector<int>
instead.Bottom line: your code needs only one change, most reasonable one would be to change
std::vector<std::string>
tostd::vector<int>
.