c++:使用指向矢量元素开头的指针访问矢量元素
c++: accessing vector elements using a pointer to the start of it
我有一个指向机器的指针向量:也就是说,
vector<Machines*> m;
我用指针填充向量,我知道存在的机器的数量。如果我创建了一个指向机器指针的指针,指向向量的开头:
Machines** m2;
m2 = & m[0];
当我递增"0"时,我会访问向量成员吗?
m2[0]->dostuff;
m2[1]->dostuff;
...
这对我来说似乎可行,但我不确定是否允许
提前谢谢!
这是允许的,但您是否意识到您可以执行以下操作,并且没有理由使用Machines** m2;
?
vector<Machines*> m;
// Fill vector here
m[0]->dostuff(); // I assumed dostuff was a function
m[1]->dostuff();
如果重新分配向量内存,代码中的指针将无效。
将元素推到向量时可能会发生这种情况。
由于vector
保证分配连续内存,因此这似乎是正确的。但你为什么要?您可以直接在vector
中获得所有这些功能。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用strcpy将char数组的元素复制到另一个数组
- 使用不带参数的函数访问结构元素
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- C++如何通过用户输入删除列表元素
- lower_bound()返回最后一个元素
- 设计将引用元素移动到开头的数据结构.C++
- 如何在 Arduino 字符串的开头添加元素.类似于 JS unshift();
- 如果我知道只会使用现有元素,我可以在数组开头之前传递指针吗?
- 在数组的开头添加一个元素并移动其余元素,但保留大小
- 如何检查 std::vector<std::string> 的元素是否以某个子字符串开头?
- 如何将元素插入矢量的开头
- 将 vector<vector> 的最后一个元素移动到<int>开头
- 在 std::forward_list 的开头插入元素
- c++:使用指向矢量元素开头的指针访问矢量元素
- 给定一个整数数组 A(20).将 Min 元素放在数组的开头
- 如何从以给定值开头的向量中移除元素
- 如何在矢量的开头插入元素
- 如何移动数组中的元素,将奇数放到数组的开头(从最小到最大),甚至放到后面(从最大到最小)