在类中使用向量的正确语法

时间:2012-10-23 01:07:45

标签: c++

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

这是我到目前为止的代码,但我不知道我的vector类的语法是否正确。另外,我将如何访问代码的int main()部分中的向量。对不起第一季的c ++对这一切来说还是很新的。

2 个答案:

答案 0 :(得分:0)

char vector<char>  alphacode();
string vector<string>  morsecode();

成员函数的返回类型错误。 charvector<char>是两种不同的类型,您不能同时使用它们。从代码中,您似乎需要vector<char>vector<string>

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


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

答案 1 :(得分:0)

首先,您需要返回矢量类型

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

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

其次,访问向量,迭代器是一个不错的选择:

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