我有一些简单的问题。我正在尝试创建一个在C++中等效于C# List的列表。我的目的是创建一个列表,可以包含我已经创建的一些偏移量。因此,最终我的COffset
将包含200个偏移量列表,如下所示
1.{ 0xAC, 0x10, 0x8, 0x4 }
2.{ 0xAC, 0x10, 0x8, 0x8, 0x4 }
3.{ 0xAC, 0x10, 0x8, 0x8, 0x8, 0x4 }
.
.
.
200.{ 0xAC, 0x10, 0x8, ........., 0x8, 0x4}
我的C#代码:
private int[] CRead;
private int[] CCheck = { 0xAC, 0x10, 0x8, 0x4 };
List<int[]> COffset = new List<int[]>();
private int NumPointer = 204;
private void CalculateOffset()
{
for (int i = 4; i < NumPointer ; i++)
{
CRead = (int[])ResizeArray(CCheck, i);
CRead[i - 1] = 0x4;
CRead[i - 2] = 0x8;
CCheck = CRead;
COffset.Add(CRead);
}
}
private static System.Array ResizeArray(System.Array oldArray, int newSize)
{
int oldSize = oldArray.Length;
System.Type elementType = oldArray.GetType().GetElementType();
System.Array newArray = System.Array.CreateInstance(elementType, newSize);
int preserveLength = System.Math.Min(oldSize, newSize);
if (preserveLength > 0)
System.Array.Copy(oldArray, newArray, preserveLength);
return newArray;
}
这段代码在C#中运行良好且无错误。但是现在我尝试使用C ++,首先我需要说明我只是开始学习C++。
我的问题是是否有与此C#代码等价的代码?
我的C++进展代码:
static int CRead[]; //*Can't create this because it have to tell the size.
static int CCheck[] = { 0xAC, 0x10, 0x8, 0x4 };
list<int[]> COffset; //*don't know that it is correct or not. I don't know how to test it without fully done.
//#include <list> for using list
static int NumPointer = 204;
static void CalculateOffset(){
for(int i =4 ; i<NumPointer ; i++){
//This steps I have no idea at all because its need ResizeArray in C#.
}
}
我不知道如何让所有的评论都生效,比如在CRead
中,我无法分配其大小,因为在C#代码中它不是一个常量。
vector
的东西。https://www.geeksforgeeks.org/vector-in-cpp-stl/ - panoskarajohn