我有一个模板类,在其中我有一个函数,该函数应读取文本文件的内容并创建一个对象,该对象将被推送到自己实现的矢量类中。我可以编译代码,但是在向量中第0个元素上有一个非常大的数字时出现错误。 (这是由脚本提供的用于错误处理的错误,不是任何c ++编译器错误。)
代码看起来像这样:
bool FileReading(const std::string &nameOfFile)
{
std::ifstream readFileObj(nameOfFile);
if (readFileObj.is_open())
{
T input;
readFileObj >> input;
PushBack(input);
readFileObj.close();
return true;
}
return false;
}
变量T输入是模板变量,函数PushBack是将对象推入向量的函数。 (不是std push_back函数)
我是否缺少明显的东西?关于流如何工作的基本知识?
这是我的PushBack功能:
void PushBack(const T &element)
{
if (currentElementCount == maximumCapacity)
{
T *tempArray = new T[maximumCapacity * 2];
for (unsigned int i = 0; i < maximumCapacity; ++i)
tempArray[i] = normalArray[i];
delete[] normalArray;
maximumCapacity *= 2;
normalArray = tempArray;
}
normalArray[currentElementCount] = element;
currentElementCount += 1;
}
我有一个模板类,在其中我有一个函数,该函数应读取文本文件的内容并创建一个对象,该对象将被推送到自己实现的矢量类中。我可以编译代码,但是...
我不确定我对执行这些操作的环境有正确的了解,但是我想到了一些想法可能会有所帮助: