如何动态初始化vlaue元素并将其分配给数组 我想用C++中的元素来分配动态数组元素的值。 我使用下面的代码来赋值 int *missedlst; for(int i=0;i<10;i++){ missedlst = new int; missedlst[i] = i; }
如果打印值,则仅正确显示最后一个值。其余的值不是:程序显示一些垃圾值。如何动态初始化vlaue元素并将其分配给数组 我想用C++中的元素来分配动态数组元素的值。 我使用下面的代码来赋值 int *missedlst; for(int i=0;i<10;i++){ missedlst = new int; missedlst[i] = i; },c++,arrays,dynamic-arrays,C++,Arrays,Dynamic Arrays,如果打印值,则仅正确显示最后一个值。其余的值不是:程序显示一些垃圾值。 请帮助我在循环中逐个元素分配值。您的代码正按照您的指示执行 int *missedlst; // New pointer for(int i=0;i<10;i++){ // Loop 10 times missedlst = new int; // Change what the pointer points to missedlst[i] = i; // This make
请帮助我在循环中逐个元素分配值。您的代码正按照您的指示执行
int *missedlst; // New pointer
for(int i=0;i<10;i++){ // Loop 10 times
missedlst = new int; // Change what the pointer points to
missedlst[i] = i; // This makes no sense, you don't have an array
}
您需要创建一个新的整数数组,然后分配值
int size = 10; // A size that is easily changed.
int* missedList = new int[size]; // New array of size size
for(int i = 0; i < size; ++i){ // loop size times
missedList[i] = i; // Assign the values
}
// Do stuff with your missedList
// Delete the object.
delete[] missedList;
在当前代码中,您分配了十个不同的数组,每次只分配一个int,但是您写入这个单元素数组的第i个元素,在其他地方导致i为零时除外 要使您当前的代码正常工作,您需要重写is,例如
int* missedLst = new int[10]; // Create an array of ten integers
for (int i = 0; i < 10; ++i)
missedLst[i] = i; // Set the i'th element to the value of i
动态创建每个元素:
std::vector<int> missedLst; // Declare a vector of integers, size zero
for (int i = 0; i < 10; ++i)
missedLst.push_back(i); // Add the value of i at the end
但是代码中没有动态数组。我想你首先需要弄清楚什么是动态数组,以及如何制作动态数组。每当你想到动态数组时,你就应该下一步思考。你记下这个是为了你的写作质量。实际上,我的场景是什么,我不想给数组指定固定的大小。每当我想向数组中添加新数据时,它的大小都应该增加。@NaveenKumar,那么正如前面提到的,您需要一个向量。
std::vector<int> missedLst; // Declare a vector of integers, size zero
for (int i = 0; i < 10; ++i)
missedLst.push_back(i); // Add the value of i at the end
std::vector<int> missedLst(10); // Declare a vector of ten integers
std::iota(std::begin(missedLst), std::end(missedLst), 0);