用整数填充自定义整数数组
Fill a custom integer array with ints
我正在创建一个名为intArray的类。它的行为应该与 std::array 相同,但只与整数相同。考虑到大小,我需要用零填充数组的构造函数中有点卡住了。我没有使用 std::array,我只是想重新创建它。
我在想有 n 个整数(其中 n 是固定数组大小)在内存中连续,还有一个指向第一个整数的指针 head......然后,可以通过获取头部指向的数据的内存位置之后的第 i 个内存位置来轻松访问其余整数。
基本上,我应该如何在构造函数中初始化/填充带有零的数组?
这是实现构造函数的有效方法吗?如果是这样,有没有更好的方法?如果没有,我应该如何完成此任务?
抱歉,这是一个令人困惑的问题,如果您需要任何澄清,请发表评论。
<小时 />这是我到目前为止的构造函数:
(不确定如何创建"n"个独立整数)
intArray::intArray(size_t n){
intArray::size = n;
int num = 0;
intArray::head = num //head is an int*
//have no idea how to do this...
for(int i=0; i<n; i++){
&num + 1 = 0; //trying to set next value in memory to 0
//obviously not gonna work!
}//end loop
}//end of constructor
<小时 />我非常感谢任何答案/评论。如果我错过了什么,现在就让我,谢谢!
首先,你真正要做的是重新创建vector
,而不是array
,因为你的构造参数不需要在编译时知道。 考虑到这一点,您需要使用动态内存,除非您更改将大小作为模板参数传递并存储实际数组而不是指针的方法(这正是std::array
的工作方式)。
因此,使用动态内存,构造函数变为:
intArray::intArray( size_t n )
: head( new int[ n ] )
, currentSize( n )
{
std::fill( head, head + n, 0 );
}
如果您不想使用 std::fill
,则等效循环为:
for( size_t i = 0; i < n; i++ )
{
head[i] = 0;
}
相关文章:
- 从二进制文件中读取整数数组
- 新的整数数组向右移动?
- C++ 中的二维整数数组,每行中的元素数量不均匀
- 给定一个整数数组,需要在Max_Heap上运行操作。得到错误"segmentation fault",有什么想法吗?(C++)
- 为什么在我的 main 函数中声明整数后我的整数数组中会出现错误?
- 在 C++ 中将整数数组转换为位集表示形式的最佳方法?
- 从两个 4x64 位整数数组中获取取模
- 字符到整数数组
- 从函数参数 [C++] 复制整数数组
- 指向整数数组和打印总和的指针
- 使用可变参数函数将整数和/或整数数组放入单个 int 数组中
- 线程安全整数数组?
- 整数数组中最长的回文
- 在大整数数组中查找子数组
- 查找整数数组中最接近的数字
- 创建<int>对整数数组指针的矢量引用 (C++)
- 整数指针数组的元素是否可以指向整数数组?
- 如何将整数数组相乘得到一个数字?
- 当 map 是一个整数数组并且由 operator[] 创建时,它是否初始化其映射类型
- 将文本文件读入整数数组