0

配列を可変サイズのベクトルにキャストするための簡単な解決策があるかどうか知りたいです。

double CApp::GetTargetCost(const vector<unsigned char> &uHalfphoneFeatureVector_Bytes,const vector<unsigned char> &uTargetFeatureVector_Bytes)

合格したいです

struct udtByteFeatures
{
    unsigned char Values[52];
};

ただし、C++ は固定サイズであるという事実を好まない。可変サイズのベクトルが必要です。

私が得ているエラーは

error C2664: 'CApp::GetTargetCost': Conversion of parameter 1 from 'unsigned char [52]' to 'const std::vector<_Ty> &' not possible

後で固定サイズを使用するかどうかはまだわかりませんが、現在は柔軟に対応したいと考えています。

ありがとうございました!

4

2 に答える 2

0

Valuesはベクトルではありません。それは配列です。クラスのインスタンスであるオブジェクト(つまりstd::vector)にリモートで関連していません。Google で「配列からベクトルを初期化する」を検索した場合、配列がポインターに分解されるという事実が非常に役立つことがわかるでしょう。

int a[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
std::vector<int> v(a, a + 10);
for (std::vector<int>::iterator it = v.begin(); it != v.end(); it++)
    std::cout << *it << std::endl;
于 2013-06-19T06:11:34.057 に答える