ошибка: нет соответствующей функции для вызова ‘std :: vector <std :: __cxx11 :: basic_string <char>> :: push_back (int &) ’ - PullRequest
0 голосов
/ 27 июня 2018

Я новичок в с ++. При запуске мой код получил эту ошибку: (

Big Sorting.cpp: в функции int main (int, const char **) ’: Big Sorting.cpp: 13: 22: ошибка: не соответствует функция для вызова callstd :: vector> :: push_back (int &) ’ v.push_back (м); ^ В файле, включенном в /usr/include/c++/8.1.1/vector:64, от Big Sorting.cpp: 2: /usr/include/c++/8.1.1/bits/stl_vector.h:1074:7: примечание: кандидат: oid void std :: vector <_Tp, _Alloc> :: push_back (const value_type &) [with _Tp = std :: __ cxx11 :: basic_string; _Alloc = std :: allocator>; станд :: вектор <_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: примечание: нет известного преобразования для аргумента 1 из типа "int" в "const value_type &" 'aka {aka ‘Const std :: __ cxx11 :: basic_string &’} /usr/include/c++/8.1.1/bits/stl_vector.h:1090:7: примечание: кандидат: oid 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 = станд :: __ cxx11 :: basic_string] push_back (value_type && __x) ^ ~~~~~~~~ /usr/include/c++/8.1.1/bits/stl_vector.h:1090:7: примечание: нет известного преобразования для аргумента 1 из int в ‘Std :: vector> :: value_type &&’ {aka «Станд :: __ cxx11 :: basic_string &&»}

вот мой код

#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;
}

1 Ответ

0 голосов
/ 27 июня 2018

Вы читаете int переменную m и пытаетесь поместить ее в вектор строк. Вы должны использовать std::vector<int> вместо.

Итог : вашему коду нужно только одно изменение , наиболее разумным было бы изменить std::vector<std::string> на std::vector<int>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...