从std:vector获取数组
从矢量中获取char数组的最简单方法是什么?
我在做的方式是使用向量开始和结束迭代器初始化字符串,然后从此字符串获取.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());
}
编辑:从评论(谢谢卡萨布兰卡)
std::vector<char> chars;
char* char_arr = chars.data(); // &chars[0]
链接地址: http://www.djcxy.com/p/91703.html