c++ - 将 vector 迭代器转换为成员指针

标签 c++ vector iterator

我已经将一个文本文件加载到一个缓冲区中,并且想使用良好的 C++ 风格,使用了 vector<char> .然后我想将迭代器从所述 vector 传递给 char*函数参数 - 我假设在引擎盖下, vector 迭代器只是解析为指向成员类型的指针。但是,我收到以下错误:

no known conversion for argument 2 from ‘const __gnu_cxx::__normal_iterator<char*, std::vector<char> >’ to ‘char*’

vector 迭代器不只是一个指针吗?在那种情况下只使用指针会更有效吗?

最佳答案

由于我们正在处理 std::vector<char>并且 vector 保证在内存中是连续的,你可以做 func( &(*iteratorVariable) );只是引用值并返回地址。

关于c++ - 将 vector 迭代器转换为成员指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17005986/

相关文章:

c++ - vector 的指针问题

javascript - 在 Google Apps 脚本中,如何让单个函数迭代跟踪许多不同变量对的数据结构?

c++ - 警告 : zero as null pointer constant while comparing iterators

c++ - 引用右值

java - Java中的成员方法consting?

c++ - 函数参数 (const char *value, ...) 中的 ... 是什么意思

创建输出存储而不是应用于现有存储的 C++ 算法?

C++ : Function overloading vs Variadic function vs Variadic template vs default parameter

c++ - 具有动态分配内存的 vector 无法删除最后一个

java - 查找最相似的 List<String> 的有效方法