c++ - 从 std :vector 获取数组

标签 c++ arrays vector

从 vector 中获取字符数组的最简单方法是什么?

我正在做的方式是使用 vector 开始和结束迭代器初始化一个字符串,然后从这个字符串中获取 .c_str() 。还有其他有效的方法吗?

最佳答案

这在 Scott Meyers 的 Effective STL 中进行了讨论,您可以执行 &vec[0] 来获取 std 的第一个元素的地址: :vector,并且由于标准将 vector 限制为具有连续内存,因此您可以这样做。

// some function
void doSomething(char *cptr, int n)
{

}

// in your code
std::vector<char> chars;

if (!chars.empty())
{
    doSomething(&chars[0], chars.size());
}

编辑:来自评论(感谢卡萨布兰卡)

  • 小心持有指向该数据的指针,因为如果修改了 vector ,指针可能会失效。

关于c++ - 从 std :vector 获取数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4289612/

相关文章:

c++ - 从模板函数调用的模板类的模板成员函数

C++:运算符重载<用于指向对象的指针

java - 如何获取文本所属的数组

java - While循环将循环遍历数组java中的条目

c++ - vector 下标超出范围

c++ - while 循环不考虑这两个条件

c++ - 如何让这个 Qt 状态机工作?

c - 如何使用 C 中的文件指针数组将数据写入多个文件?

python - 合并/连接具有不同元素的数组

c++在读取文件之前或之后忽略字符串部分