c++ - 获取STL vector C++的地址

标签 c++ vector casting

我正在尝试分配 std::vector<char> 的地址进入 char*并且有一些问题。

代码:

void GGG:foo(std::vector<char>& MyVct)  
{  
      char* p = &MyVct[0];   
}    

但是我没有得到地址。 如何获取地址并将其转换为 char*?

最佳答案

您似乎想要 MyVct 中元素的地址,而不是 vector 本身。
您可以使用 vector::data为此目的:

char* p = MyVct.data();

编辑:如果你想修改 vector 的元素,你不必真的得到它的指针。您可以使用 std::vector 提供的可用接口(interface).例如,而不是做:

char *p = MyVct.data(); // or char *p = &MyVct[0];
*p = 'a';

简单地做:

MyVct[0] = 'a'; // Use C++ way!

关于c++ - 获取STL vector C++的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13722527/

相关文章:

c++ - 一个简单的 C++ 程序的汇编输出

c++ - 将 Qt 程序与第三方程序连接起来——如何在它们之间发送信息?

c++ - 如何在fortran中使用write语句调用另一个自定义函数?

c++ - 类、指针、 vector 和删除

c++ - 将迭代器转换为另一种类型

c++ - 使用 boost::bind 排序

java:结合了instanceof和cast?

c# - 将结构从非托管 C++ 传递到 C#

c# - 是否有将对象转换为小数的单行方法?

java - 将一组 Java 对象转换为另一组对象的最佳方式是什么?