gpt4 book ai didi

c++ - 将 std::vector 传递给修改输入数组的函数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:17:22 25 4
gpt4 key购买 nike

我正在使用第三方 API(准确地说是 CryptEncrypt),它将 C 数组作为输入输出参数。从逻辑上讲,API 归结为以下功能:

void add1(int *inout, size_t length)
{
for(size_t i = 0; i < length; i++)
{
inout[i] += 1;
}
}

我试图避免使用原始数组,所以我的问题是我可以使用 std::vector 作为上述 API 的输入吗?类似于以下内容:

#include <vector>
int main()
{
std::vector<int> v(10); // vector with 10 zeros
add1(&v[0], v.size()); // vector with 10 ones?
}

我可以使用 vector 的“连续存储”保证向它写入数据吗?我倾向于相信这没问题(它适用于我的编译器),但如果比我更有知识的人可以确认这种用法是否违反 C++ 标准保证,我会感觉好很多。 :)

提前致谢!

最佳答案

Can I use the 'contiguous storage' guarantee of a vector to write data to it?

是的。

I'm inclined to believe that this is OK

你的倾向是正确的。

关于c++ - 将 std::vector 传递给修改输入数组的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5520269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com