繁体   English   中英

std :: vector使用的字节大小

[英]Byte size used by std::vector

我正在将std::vector与需要知道字节大小的C程序接口。

我可以在没有表达式sizeof(vec[0])情况下执行此操作吗?

void *dest = get_dest();
std::vector<T> vec;
memcpy(dest, vec.data(), vec.size() * sizeof(vec[0]));

请不要为memcpy提供C ++风格的替代方案。

template<class T, class A>
std::size_t bytes_in_vector( std::vector<T,A>const& v ){
  return v.size()*sizeof(T);
}
template<class A>
std::size_t bytes_in_vector( std::vector<bool,A> const& )=delete;

但是,只要T不是boolsizeof(vec[0])几乎没有错。 如果Tbool ,则不允许使用memcpy

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM