gpt4 book ai didi

c++ - 具有动态分配成员的结构 vector

转载 作者:行者123 更新时间:2023-11-30 04:31:37 25 4
gpt4 key购买 nike

如果我想用一个结构填充一个 vector ,并且在该结构中我需要动态分配/重新定位 WCHAR 数组,我将如何填充它?
我不能使用 std::wstring,因为我将通过 Windows API 使用成员。像 RegQueryValueEx 这样的函数需要一个 LPBYTE 来接收数据。

或者我应该使用其他一些 STL 容器吗?

示例代码:

typedef struct {
WCHAR *str1;
WCHAR *str2;
DWORD SomeOtherStuff;
} MYSTRUCT;

vector<MYSTRUCT> myvector;

最佳答案

使用 std::vector<WCHAR>对于结构成员。这将为您的结构提供必要的复制/移动语义,以将其放入 vector 中。而且,当您需要某些 API 的原始指针时,它可以作为 &str1[0] 使用。 .

在执行任何将访问数据的操作之前,请记住确保它足够大(通过将其初始化为所需大小,或调用 resize() )。另请记住,当调整 vector 大小时,指向数据的指针和迭代器将变得无效。

关于c++ - 具有动态分配成员的结构 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8124465/

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