所以我还在学习C ++,但我无法弄清楚我做错了什么。我正在使用Code :: Blocks IDE,尽管包含了向量和数组头,它给了我一个很大的错误列表,并说在这个范围内没有声明任何内容。代码非常基础:
#include <iostream>
#include <vector>
#include <array>
#include <string>
using namespace std;
int main()
{
string b = const, 10;
vector<string> string1(b);
array<string, b> string2;
return 0;
}
好的,记录,这就是我要做的事情:
&#34;声明一个包含10个字符串对象的矢量对象和一个10字符串的数组对象 对象。显示必要的头文件,不要使用。请使用const 字符串的数量。&#34;
答案 0 :(得分:3)
你的错误是,逐行...
string b = const, 10;
那个根本没有意义,我不知道你在那里期待什么。将字符串分配给b
。
string b = "whatever";
vector<string> string1(b);
vector<T>
不包含带T
的构造函数。在您的情况下,没有构造函数采用string
。如果您的编译器支持它,您可以使用:
vector<string> string1 = {b};
如果它没有,那就够了......
vector<string> string1;
string1.push_back(b);
array<string, b> string2;
array<T,size_t>
将T
(string
)和元素数量size_t
作为模板参数。 b
是string
,而不是size_t
,所以这没有任何意义。将大小作为第二个模板参数传递。
array<string, 10> string2;
根据@Benjamin Lindley的评论,也许您打算在第一行声明const int
,其值为10
。如果是,那么......
int main()
{
const int b = 10;
vector<string> string1(b);
array<string, b> string2;
return 0;
}