Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 用C+构建数据库原型+;_C++_Database_Pointers_Iterator - Fatal编程技术网

C++ 用C+构建数据库原型+;

C++ 用C+构建数据库原型+;,c++,database,pointers,iterator,C++,Database,Pointers,Iterator,我正在尝试建立一个小型数据库的原型。首先,将一些整数作为数据,并将它们的条件设置为已访问或未访问。这些条件最初是在迭代数据集时设置的。稍后我将更改一些条件(不在代码内部) 稍后要使用名为“isVisited”的函数检查条件,代码如下- Data.cpp -------- #包括 #包括 #包括“Data.h” 使用名称空间std; 数据::数据() { } 无效数据::已访问(数据*数据) { 数据*\u数据=数据; 如果(_data->isvisted){ cout您有一个需要数据的容器,但

我正在尝试建立一个小型数据库的原型。首先,将一些整数作为数据,并将它们的条件设置为已访问或未访问。这些条件最初是在迭代数据集时设置的。稍后我将更改一些条件(不在代码内部)

稍后要使用名为“isVisited”的函数检查条件,代码如下-
Data.cpp
--------
#包括
#包括
#包括“Data.h”
使用名称空间std;
数据::数据()
{
}
无效数据::已访问(数据*数据)
{
数据*\u数据=数据;
如果(_data->isvisted){

cout您有一个需要
数据的容器,但您提供了它
int
。您需要某种类型的转换运算符。最简单的方法是为
数据
提供一个隐式构造函数,该构造函数接受
int

class Data
{
public:
   Data(int)
   {
      // this should do something "appropriate"
   }
};
但是,从您发布的代码来看,目前还不完全清楚您希望如何处理传递到数据集中的整数(
test
),因为当前您没有存储数据集中保存的值,只有一个指示是否已访问的标志

另一方面,
std::list
很少是最适合使用的数据结构,特别是当您计划仅通过示例中的
push_back()
与之交互时。对于这种情况,首选
std::vector

另一方面,您的
test
对象正在泄漏。没有任何有效的理由动态分配它,因此我将向您提供一些替代方案

最好的方法是使用自动存储持续时间创建它,如下所示:

std::vector<Data> test;
test.push_back(12);
// ...
std::向量测试;
试验。推回(12);
// ...
如果您觉得必须动态分配它,那么应该将它包装在智能指针中

std::unique_ptr<std::vector<Data>> test(new std::vector<Data>);
test->push_back(12);
// ...
std::unique_ptr测试(新std::vector);
测试->推回(12);
// ...

你的问题是什么?你的问题是?如何修复错误?@Chad在德语中我们有一句谚语:这就像从s.one的鼻子里拔出鞭子……很抱歉我忘了发布。错误:C:\C++Programme file\test2\main.cpp | 13 |错误:调用“std::list::push|back(int)”没有匹配的函数“|谢谢,它现在可以工作了。有没有其他方法可以在没有构造函数的情况下从int转换为数据?有很多方法可以实现这一点,但是如果不知道
数据
应该如何与提供的
int
值交互,很难说什么是合适的方法。
class Data
{
public:
   Data(int)
   {
      // this should do something "appropriate"
   }
};
std::vector<Data> test;
test.push_back(12);
// ...
std::unique_ptr<std::vector<Data>> test(new std::vector<Data>);
test->push_back(12);
// ...