从 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/