c++ - 在 C++ 中将 vector 转换为数组

标签 c++ c++11

我有一个关于从 std::vector 转换为数组的问题。 我有一个指向对象的指针 vector 。如何将其转换为 C++ 中对象的指针数组?

vector 是 std::vector<pin*> *_PINS

我想把它转换成 pin** pins_arr

我已经尝试了此处建议的所有内容,但不起作用

我想它不起作用的原因是因为我有指向对象的指针作为类型而不是基本类型。

你能帮我解决这个问题吗?我整个早上都被困住了。

谢谢,

最佳答案

编辑:如果你真的坚持做这样的转换,我想你可以按这个顺序做一些事情:

std::vector<PIN *> *_PINS;

_PINS = new std::vector<PIN *>;

// make life a little easier:
std::vector<PIN *> tmp = *_PINS;

PIN *pins = new PIN *[10];

for (int i=0; i<10; i++)
    pins[i] = tmp[i];

PIN **ppins = &pins;

不过,我必须同意 Ed.S 的观点——你在这里所做的事情首先违背了使用 std::vector 的大部分目的,坦率地说,这让我有点震惊愚蠢。

关于c++ - 在 C++ 中将 vector 转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9710347/

相关文章:

c++ - 检索不同类型的对象指针

c++ - 如何访问模板类型参数包中的类型索引?

c++ chrono意外行为

c++ - 在不破坏任何东西的情况下使用 OSX 和 Eclipse 获得一个可用的 C++11 工具链

c++ - 在运行的 while 循环中从 QLineSeries 更新 QChart

c++ - QT Creator 出错

c++ - 在 C++ 中使用回溯的背包解决方案

c++ - 输入数字时出现循环错误

c++ - Listen 套接字仅在 g++ 中工作,没有 -std=c++11

c++ - std::initializer_list 作为 std::array 构造函数