Ale*_*lex 3 c++ std stdvector c++11 visual-studio-2015
我有以下代码编译得很好:
void foo::bar(const vector<int> arg) {
int* ptr = arg.data();
// do something with ptr
}
Run Code Online (Sandbox Code Playgroud)
我需要重载此函数 vector<bool>
void foo::bar(const vector<bool> arg) {
int* ptr = arg.data();
// error C2039: 'data': is not a member ofstd::vector<bool,std::allocator<_Ty>>'
// do something with ptr
}
Run Code Online (Sandbox Code Playgroud)
vector<bool>没有data()会员的原因是什么?
在这里(en.cppreference.com)我没有找到一些特定的bool案例std::vector.
该代码使用MSVS 2015进行编译.
小智 6
vector<bool>专业化的全部意义在于,与所有其他向量不同,数据vector<bool>不需要存储为数组bool.通过在单个字节中打包多个位,可以更有效地存储它.因此,成员bool *可能无法返回data().
| 归档时间: |
|
| 查看次数: |
293 次 |
| 最近记录: |