【发布时间】:2014-12-13 04:59:09
【问题描述】:
我试图使用向量 svec 来存储一些字符串值。但是在Dev C++ 5.6.1 编译时,编译器报错“no match for operator=”。为什么会出现此错误以及如何解决?谢谢。
#include<vector>
#include<iostream>
#include<string>
using namespace std;
int main() {
vector<string> svec[100];
for (int i = 0; i < 100; ++i) {
svec[i] = "ABC";
}
return 0;
}
[错误] 'operator=' 不匹配(操作数类型为 'std::vector >' 和 'const char [4]')
编辑:问题出在向量 svec[100];改成vector svec(100)后一切顺利;
edit2:我很好奇编译器如何看待以下声明。 svec 是否仍被声明为向量?
vector<string> svec[100];
【问题讨论】:
-
svec是一个向量数组。你需要一个大小为 100 的向量,vector<string> svec(100); -
我知道这可能只是一个示例,但提示:您可以创建一个具有相同元素的向量,如下所示:
vector<string> svec(100, "ABC"); -
是的,问题在于声明。谢谢。