为什么我的项目不包含向量或数组?

问题描述 投票:0回答:1

所以我仍在学习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 字符串的数量。”

c++ arrays vector codeblocks
1个回答
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;
}
© www.soinside.com 2019 - 2024. All rights reserved.