ajd*_*jd. 6 c++ pointers iterator stl vector
我正在使用第三方API(确切地说是CryptEncrypt),它将C数组作为输入输出参数.从逻辑上讲,API归结为以下功能:
void add1(int *inout, size_t length)
{
for(size_t i = 0; i < length; i++)
{
inout[i] += 1;
}
}
Run Code Online (Sandbox Code Playgroud)
我试图避免使用原始数组,所以我的问题是我可以使用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?
}
Run Code Online (Sandbox Code Playgroud)
我可以使用向量的"连续存储"保证向其写入数据吗?我倾向于认为这是可以的(它适用于我的编译器),但如果比我更有知识的人能够确认这样的用法是否违反C++标准保证,我会感觉好多了.:)
提前致谢!
归档时间: |
|
查看次数: |
684 次 |
最近记录: |