我的任务是计算很多" a"数组中的字母
所以这是我的代码
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int i;
int ch[10];
cout<<"enter 10 letters"<<endl;
for(i=0;i<10;i++){
cin>>ch[i];
}
cout<<endl;cout<<endl;
cout<<"this is the letter you entered"<<endl;
cout<<endl;
for(i=0;i<10;i++){
cout<<(ch[i])<<endl;
}
vector<int> a = ch[10];
int cnt;
cnt = count(a.begin(), a.end(), "a");
cout<<"many a's are = "<<cnt<<endl;
}
但它给了我错误 [错误]转换为&#39; int&#39;到非标量类型&#st; :: vector&#39;请求的
请帮帮我, 从https://www.tutorialspoint.com/cpp_standard_library/cpp_algorithm_count.htm
引用我的代码答案 0 :(得分:2)
对于初学者,数组ch
应该声明为
char ch[10];
^^^^
如果您打算输入字母作为输入。
本声明
vector<int> a = ch[10];
没有意义。向量的初始值设定项是数组ch
中不存在的元素。此外,类模板std::vector
没有非显式构造函数,可将类型为int
的对象转换为类型std::vector<int>
。
在本声明中
cnt = count(a.begin(), a.end(), "a");
您正在尝试计算类型为"a"
的对象中遇到类型为const char[2]
的字符串文字std::vector<int>
的次数。
无需声明用于计算字母'a'
出现次数的向量。你可以写
#include <iterator>
//...
char ch[10];
//...
auto cnt = std::count( std::begin( ch ), std::end( ch ), 'a' );