C中有一些代码使用calloc()来创建有效的向量.看起来是这样的:

uint64_t *reverseOrder = (uint64_t *)calloc((size + 1), sizeof(uint64_t));

我想用C++语法和向量来模拟这种行为,这样它实际上可以工作.我可以使用以下语法吗?

std::vector<uint64_t> reverseOrder(size + 1, 0);

我知道calloc()实际上通过内存并将其设置为0,所以我想知道是否是这样.

推荐答案

你可以直接写

#include <vector>
#include <cstdint>

//...

std::vector<uint64_t> reverseOrder( size + 1 );

向量的所有元素都将初始化为零.

C++相关问答推荐

FFmpeg不检测比特流过滤器参数

了解返回函数指针的函数定义

GCC引发不明确的诊断消息

C语言中的strstr问题

具有交换链获取和命令缓冲区提交的同步-危险-读后写错误

为什么中断函数会以这种方式影响数组?

为什么我从CSV文件中进行排序和搜索的代码没有显示数据的所有结果?

在for循环中指向数组开头之前

如何在VS 2022中正确安装额外的C头文件

不同原型的危险C函数是可能的

错误...的多个定义(&Q)首先在这里定义&

隐藏测试用例无法在c程序中计算位数.

区分MySQL C界面中的文本和BLOB字段

在同一范围内对具有相同类型的变量执行的相同操作在同一C代码中花费的时间不同

将char*铸造为空**

在C中交换字符串和数组的通用交换函数

macos/arm64 上地址空间不使用第一位吗?

使用替代日历打印日期

#define X Defined(Y) 是有效的 C/C++ 宏定义吗?

尽管将其标记为易失性,但 gcc 是否优化了我的等待代码?