C++:使用STL矢量时有什么错误

C++: What error in using STL vector

本文关键字:什么 错误 使用 STL C++      更新时间:2023-10-16

我使用的是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();

这是面漆问题描述:

Definition Class:BinaryCode
Method:decode
Parameters:string
Returns:vector <string>
Method signature:
vector <string> decode(string message)

(请确保您的方法是公开的)

您的方法签名是:

void decode(string decd)

应为:

vector <string> decode(string message)

TopCoder使用问题的测试代码编译您的代码。确保您提供的代码符合问题语句中的要求。

Topcoder编译器期望函数为

vector <string> decode(string message)

而你的功能是

void decode(string message)

您使用的是"void"而不是vector<string>

尝试使用

using namespace std;

它解决了我的问题。还包括,它将您的代码放入单独的文件

#include <vector>
#include <string>