我遇到了动态数组。我想从文本文件中读取整数并将它们存储到数组中。我需要一个push_back和size函数,但不能使用矢量中的STL。我试图做一个push_back函数,但我需要使用size函数。对于size函数,我想通过数组并为每个元素递增一个计数器,但是如何停止循环,例如for(int i = 0; i&lt; d_array.end(); i ++),使用.end()我需要包含<array>
?
感谢提示。
到目前为止我的代码:
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
int* d_array = 0;
const string filename = "test.txt";
int s = 0;
int counter = 0;
fstream f;
f.open(filename, ios::in);
if (f){
while (f >> s){
counter += 1;
}
}
d_array = new int[counter];
if (f){
while (f >> s){
d_array.push_back(s);
}
f.close();
}
for (int i = 0; i < d_array.size(); i++){
cout << d_array[i] << "\n";
}
void push_back(int value){
int d_size = d_array.size();
int* d2_array = 0;
d2_array = new int[d_size + 1];
d_array = d2_array;
d_array[d_size] = value;
delete[] d2_array;
}
int size() const{
}
}
答案 0 :(得分:2)
你问的是错误的问题。你正试图解决这个问题
如果仅指向其开头的指针
,我如何找到动态分配的数组的长度
一般没有解决方案 - 但实际上你需要解决的问题是
如何创建包含动态分配数组的数据结构,以便获取数组的大小?
这有一个非常简单的解决方案,一旦你停止了你正在关注的问题......