C++ 结构中的向量定义(c+;+;)
一个非常基本的问题,但我还没有找到答案 我编写了一个应用程序,它使用一个具有常量预定义值的数组,该值定义了该数组的大小。所以现在我想改变这一点,这样“列表”理论上可以是无限的(我知道这实际上是不可能的)。为此,我想使用一个向量。但当我键入以下内容时,它会给我一个错误: 编辑(2):意外写入常量和错误的push_back funktion参数,这是给出错误的最终版本C++ 结构中的向量定义(c+;+;),c++,struct,C++,Struct,一个非常基本的问题,但我还没有找到答案 我编写了一个应用程序,它使用一个具有常量预定义值的数组,该值定义了该数组的大小。所以现在我想改变这一点,这样“列表”理论上可以是无限的(我知道这实际上是不可能的)。为此,我想使用一个向量。但当我键入以下内容时,它会给我一个错误: 编辑(2):意外写入常量和错误的push_back funktion参数,这是给出错误的最终版本 #include "stdafx.h" #include "string" #include "vector" using nam
#include "stdafx.h"
#include "string"
#include "vector"
using namespace std;
struct Board {
vector <string> myVector;
myVector.push_back("foo");
};
#包括“stdafx.h”
#包括“字符串”
#包括“向量”
使用名称空间std;
结构板{
向量myVector;
myVector.push_back(“foo”);
};
错误消息:Board::myVector
此声明没有存储类或类型说明符。
我的想法是向量在
结构中不起作用。我听说结构是一个简单的C语言,向量是C++的东西,也许这就是为什么?但实际上我不知道,这就是为什么我在这里问:)
编辑(1):
我刚刚给了您visual studio错误,也许我应该给您编译器错误..:
错误C3927:“->”:非函数声明符之后不允许有尾随返回类型
错误C3484:语法错误:返回类型前应为“->”
错误C3613:“->”之后缺少返回类型(假定为“int”)
错误C3646:'push_back':未知覆盖说明符
错误C2059:语法错误:'('
错误C2238:在“;”之前出现意外的令牌
问题如下:
- (
在OP问题中更正)
myVector
已定义const
myVector.push_back(1);
不在任何函数体中
- (
在操作问题中更正了
)传递给myVector的值。向后推(1);
为int
,但vector
为字符串类型
更改如下。请参阅示例程序:
如果要将initlize值始终放在末尾,请使用而不是。将代码放在结构“myVector.push_back(1);”中,您声明了常量向量,然后尝试修改它。第二个:myVector.push_back(1)
在结构定义中是不可能的。你需要从一些课程、一本书或一些教程开始。很抱歉const
是我的一个失败。写它实际上没有一个const,但问题是一样的。在得到答案后,请不要修复问题中的错误。目前唯一的答案很难阅读,因为大多数答案都是错误的它所指的hing不再出现在代码中。顺便问一句,你确定编译器错误来自你显示的代码吗?它抱怨->
,这有点可疑,但代码中没有。我的问题是,你真的可以在不创建额外函数的情况下对结构中的向量使用推回
创建一个结构对象时,会声明一个向量myVector,并自动在该向量的末尾获取一个值,例如“foo”
#include "string"
#include "vector"
#include "iostream"
using namespace std;
struct Board {
vector<string> myVector;
void push_back(string val)
{
myVector.push_back(val);
}
void print()
{
for (auto it = myVector.begin(); it != myVector.end(); ++it)
cout << " | " << *it;
}
};
int main()
{
Board b;
b.push_back("Value 1");
b.push_back("Value 2");
b.print();
return 0;
}
vector<string> myVector{"IVal 1", "IVal 1"};