从函数参数 [C++] 复制整数数组
Copy an array of ints from a function parameter [C++]
我有一个C++函数,它以这样的方式启动
void findSolutions(vector<MOVE> & solutions, int board[], int maxPegs){
int newboard[18];
copy(begin(board), end(board), begin(newboard));
...
more code
...
}
我正在尝试将参数"board"复制到临时 int 数组中,这样我就不会直接修改原始板。但是在copy((中,我从VSCode收到以下错误
no instance of overloaded function "begin" matches the argument list -- argument types are: (int *)
如何复制从参数传入的数组?谢谢
std::copy
在迭代器方面工作。begin()
/end()
在指针上调用,即board
不会产生迭代器,相反board
衰减到指针的数组可以直接用作迭代器。 您可以通过以下方式简单地使用std::copy
。
std::copy(board, board + len, newboard);
我假设len
是您要复制的长度,并确保newboard
有能力存储len
数量的元素。
您无法安全地执行此操作。数组在传递到函数时衰减为指针。您将无法确保源数组有足够的字节来读取(除非应用程序是微不足道的,并且您知道调用方端发生了什么(。如果将数组作为指向第一个元素的指针传递,则您也有责任传递数组的长度。假设boardLen
板中int
的数量,您可以执行以下操作,
void findSolutions(vector<MOVE> & solutions, int board[], size_t boardLen, int maxPegs){
int newboard[18];
memcpy(newboard, board, min(sizeof(newboard), boardLen*sizeof(int));
...
memcpy
一次复制一个字节,因此boardLen*sizeof(int)
.
相关文章:
- 如何反转整数参数包
- enum是C++中的宏变量还是整数变量
- 从函数参数 [C++] 复制整数数组
- 将 n 位从 8 位数组复制到 64 位整数?
- 复制整数位的最快方法
- 如何在具有指向对象的指针数组的类中创建复制构造函数和析构函数,其中对象本身具有指向整数的指针数组
- 我可以使用STD ::复制将数据的位模式从整数向量复制到一系列未签名的字符
- 用 0 复制字符数组中的短整数
- 如何将 6 字节无符号整数快速复制到内存区域
- 在C++中复制整数数组
- 复制与标准::移动整数
- 如何使用 memcpy 将数据从两个整数复制到字符数组
- C++ 在复制透视时对整数进行分区
- 计算文件中的整数并复制到动态数组
- 将 Timeval 成员变量复制到整数变量
- 将一个16位整数复制到一个两字节数组
- c++将整数复制到char[]或unsigned char[]错误
- 不可复制类型的整数可索引RAII容器
- 在另一个文件中以相反的顺序复制字符串和整数文件
- 使用整数上的指针进行写时复制