C++ 如何向向量添加元素

C++ 如何向向量添加元素,c++,C++,我试图在我的程序中向向量添加元素。但我不确定我是否做对了。到目前为止,我下面的内容不起作用。我得到一个错误,上面写着: 错误LNK2019:未解析的外部符号“public:u thiscall MySet::MySet(void)”(??0MySet@@QAE@XZ)在功能_main中引用 这是我的密码: #include <iostream> #include <map> #include <vector> using namespace std; cl

我试图在我的程序中向向量添加元素。但我不确定我是否做对了。到目前为止,我下面的内容不起作用。我得到一个错误,上面写着:

错误LNK2019:未解析的外部符号“public:u thiscall MySet::MySet(void)”(??0MySet@@QAE@XZ)在功能_main中引用

这是我的密码:

#include <iostream>
#include <map>
#include <vector>

using namespace std;

class MySet{

public:
 vector<int> elements;
 MySet();
 void addElement(int value);
 int removeElement(int index);
 int sum();
 int size();
};

void MySet::addElement(int value){
  elements.push_back(value);

}
int main(int argc, char *argv[]){
  int value;
  MySet set;
  cout << "Enter your numbers " << endl;
  cin >> value;
  while(value != -1){
  set.addElement(value);
 }

  system("PAUSE");
}
#包括
#包括
#包括
使用名称空间std;
类MySet{
公众:
矢量元素;
MySet();
无效加法(int值);
int-removelement(int-index);
int sum();
int size();
};
void MySet::addElement(int值){
元素。推回(值);
}
int main(int argc,char*argv[]){
int值;
MySet集;
库特值;
while(值!=-1){
集合。加法(值);
}
系统(“暂停”);
}
首先:
您从未定义MySet-ctor。请定义它或删除MySet()的声明

秒:
cin>>值
退出
循环,因此只需输入一次,您可能需要编写如下代码:
编辑:

while(cin >> value){
  if(value==-1)
    break;
  set.addElement(value);
}

您从未定义MySet-ctor。请定义它或删除MySet()的声明。doh!!好的,明白了。知道为什么我的数字不能加到向量上吗?当我运行它时,我输入1个数字,然后它输入,然后它停止将cin>>值移动到循环中,您的代码只需输入一次就可以了,我让它工作了,但我不理解MySet的构造函数部分。我应该有一个无参数构造函数来创建一个空集。如何创建一个空集?我把向量();在MyStset()中,这是一个空集右?@ ZooCul18,如果你不声明任何构造函数,编译器为你提供默认构造函数,它会为你提供一个空向量。我理解,但是对于这个问题,我应该有一个没有ARGS的控件,返回一个空的集合。C++ i使用的是非常老的LOL,我最后做了这个,我把向量();在MySet()中,我不再得到错误。但是这是返回一个空集吗?
while(cin){cin>>value;if(value==-1)break;
不处理无效的非数字输入/您应该在使用其值之前测试
值的解析是否有效:
while(cin>>value)if(value=-1)break;else set.addElement(value);