1
class Code
{
public:
  Code();
  //string decode(vector< string> message);
private:
  //vector<string> codewords;
  //vector<char> alpha;
  char vector<char>  alphacode();
  string vector<string>  morsecode();
  //char decode(string c);

};

Code::Code()
{

}

string Code::vector<string> morsecode()
{
 vector<string> temp(28);
 temp[0] =".-";
 temp[1] ="-...";
 temp[2] ="-.-.";
 temp[3] ="-..";
 temp[4] =".";
 temp[5] ="..-.";
 temp[6] ="--.";
 temp[7] ="....";
 temp[8] ="..";
 temp[9] =".---";
 temp[10] ="-.-";
 temp[11] =".-..";
 temp[12] ="--";
 temp[13] ="-.";
 temp[14] ="---";
 temp[15] =".--.";
 temp[16] ="--.--";
 temp[17] =".-.";
 temp[18] ="...";
 temp[19] ="-";
 temp[20] ="..-";
 temp[21] ="...-";
 temp[22] =".--";
 temp[23] ="-..-";
 temp[24] ="-.--";
 temp[25] ="--..";
 temp[26] =".......";
 temp[27] ="x";
 return temp;
}

char Code::vector<char> alphacode()
{
 vector<char> temp;
 for (char c='A'; c<='Z'; c++)
      temp.push_back(c);
 temp.push_back(' ');
 temp.push_back('.');
 return temp;
}

int main()
{

return 0;
}

これはこれまでのコードですが、ベクター クラスの構文が正しいかどうかはわかりません。また、コードの int main() 部分内のベクトルにアクセスするにはどうすればよいでしょうか。申し訳ありませんが、C++ の第 1 四半期は、これらすべてにまだ非常に新しいものです。

4

2 に答える 2

0

まず、ベクトル型を返す必要があります

vector<char>  Code::alphacode()
{
    //
}

vector<string>  Code::morsecode()
{
    //
}

第 2 に、ベクトルにアクセスするには、反復子が適切な選択です。

int main()
{
    Code c;
    vector<string> strVector = c.morsecode();
    vector<string>::iterator it = strVector.begin();
    for (; it != strVector.end(); ++it) {
        // accessing every single string inside this vector by dereference *it eg.
        cout << *it << endl;
    }
}

コードを実行し、結果を確認すると、それが得られます:P

于 2012-10-23T03:15:27.880 に答える
0
char vector<char>  alphacode();
string vector<string>  morsecode();

メンバー関数の戻り値の型が間違っています。charvector<char>2 つの異なるタイプであり、両方を使用することはできません。vector<char>コードから、 ,が必要なようですvector<string>

vector<string> Code::morsecode()
{
    // ...
}


vector<char> Code::alphacode()
{
    // ...
}
于 2012-10-23T01:21:07.673 に答える