所以我仍在学习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;
}
好的,郑重声明,这就是我想做的:
“声明一个10个字符串对象的向量对象和一个10个字符串的数组对象 对象。显示必要的头文件,不要使用using。请使用 const 字符串的数量。”
你的错误是,逐行......
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;
}