C ++: какая ошибка при использовании вектора STL - PullRequest
1 голос
/ 21 января 2012

Я использовал компилятор topcoder C ++, и хотя этот код просто отлично работает в Linux gcc, компилятор topcoder выдал эту ошибку:

your code did not compile:

errors compiling:

Your class or method was improperly declared: In function
   ‘std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, 
   std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > _wrapper::thunk(std::string)’:

Your class or method was improperly declared:20034: 
error: conversion from ‘void’ to non-scalar type
‘std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, 
std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >’ requested

Это фрагмент кода, в котором отмечается ошибка:

class BinaryCode {

    public:
            static int get_digit(char c)
            {
                    return (c-'0');
            }
            void decode(string decd)
            {
                    int i;

                    std::vector <int> decoded(decd.size());
                    std::transform(decd.begin(), decd.end(), decoded.begin(), &get_digit);

                    int length=decoded.size();

Это описание проблемы topcoder:

Definition Class:BinaryCode
Method:decode

Parameters:string
Returns:vector <string>

Method signature:
vector <string> decode(string message)

(убедитесь, что ваш метод общедоступен)

Ответы [ 3 ]

1 голос
/ 21 января 2012

Компилятор Topcoder ожидает, что функция будет

vector <string> decode(string message)

, в то время как ваша функция

void decode(string message)

Вы используете 'void' вместо вектора

1 голос
/ 21 января 2012

Ваш метод подписи:

void decode(string decd)

Должно быть:

vector <string> decode(string message)

TopCoder компилирует ваш код с тестированием кода для решения проблемы. Убедитесь, что указанный вами код соответствует требованиям, изложенным в описании проблемы.

0 голосов
/ 30 марта 2013

Попробуйте использовать

using namespace std;

, это решило мою проблему.А также включает в себя, он помещает ваш код в отдельный файл

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