Dev-C++中vector用户输入时无匹配运算符问题咨询
问题分析与解决方案
你的代码存在两个核心问题,导致了无匹配运算符的报错:
- 错误的容器定义:
vector<int> v[6];定义的是包含6个vector<int>对象的数组,而非单个可存储int的vector。C++的数组没有size()成员函数,所以v.size()会直接报错。 - 不合法的输入操作:即便修正循环条件,
cin>>v[i]也无法执行——因为v[i]是vector<int>类型,C++标准库没有为vector重载>>运算符来直接读取整个容器的内容。
修正方案一:定义单个可存储6个int的vector
如果你实际需求是一个能装6个整数的vector,把数组定义改成vector的构造初始化即可:
#include <iostream> #include <vector> using namespace std; int main() { vector<int> v(6); // 初始化一个大小为6的vector,每个元素默认值为0 for(int i=0; i<v.size(); i++){ cin>>v[i]; // 直接给vector的单个元素赋值 } return 0; }
修正方案二:保留vector数组(6个独立vector)
如果你确实需要6个独立的vector对象,需要调整循环逻辑,并针对每个vector单独处理输入:
#include <iostream> #include <vector> using namespace std; int main() { vector<int> v[6]; // 6个空的vector<int> // 示例:给每个vector输入3个整数 for(int i=0; i<6; i++){ // 数组长度固定为6,直接用常量循环 cout << "输入第" << i+1 << "个vector的3个元素:" << endl; for(int j=0; j<3; j++){ int num; cin >> num; v[i].push_back(num); // 向当前vector添加元素 } } return 0; }
内容的提问来源于stack exchange,提问作者user17649288
相关产品推荐
相关产品推荐

