void encodeFunc (char ch, vector<string>& keyAlpha);
int main(){
ch = msgContent.at(i);
encodeFunc(ch, keyAlpha);
}
void endcodeFunc (char ch, vector<string>& keyAlpha){
typedef vector<string> keyCheck;
typedef keyCheck::const_iterator keyIterator;
keyIterator q = find(keyAlpha.begin(), keyAlpha.end(), ch);
int element = distance(keyAlpha.begin(), q);
cout << keyAlpha.at(element+1);
}
我有上面的代碼比特顯示的下一個元素找到在載體中的給定char
,然後顯示在向量中的下一個元素。但是,試圖尋找ch
,這是由語句ch = msgContent.at(i);
填充的時候,我收到錯誤[Error] no matching function for call to 'distance(std::vector<std::basic_string<char> >::iterator, keyIterator&)'
搜索的矢量,則在矢量
這是,我不是撿的指針問題,或有更多的東西?
向量的typedef ::爲const_iterator keyIterator;或者簡單地使用C++ 11 auto q = find(keyAlpha.begin(),keyAlpha.end(),ch); –
user1438832
keyAlpha是一個字符串的向量,因此您不能使用find來查找字符。 – user1438832
第一個建議給出了同樣的錯誤; 第二個建議給出了一個不同的錯誤:'[錯誤]'q'沒有命名一個類型' 我以前從未使用'auto',是否有另一個庫需要使用它? – greatj0b