标准::矢量使用的字节大小

Byte size used by std::vector

本文关键字:字节 标准      更新时间:2023-10-16

我正在将std::vector连接到一个需要知道字节大小的 C 程序。

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

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

请不要提供C++式的替代品来替代memcpy

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;

但是,只要Tboolsizeof(vec[0])就没有什么错。 如果T bool则不允许使用memcpy