gpt4 book ai didi

c++ - cin 到 boolean vector

转载 作者:太空狗 更新时间:2023-10-29 19:44:04 35 4
gpt4 key购买 nike

我有这个代码:

#include <iostream>
#include <vector>

using namespace std;

int main(){
vector <bool> v;
cin >> v[0];
return 0;
}

为什么我不能这样做?编译器不会编译它,但我在 vector 中有其他变量类型,它会工作得很好。这有什么问题?

最佳答案

是因为std::vector<bool>是一种特化,根本不像 vector 。这被广泛认为是标准中的一个主要缺陷。

为了节省内存,vector<bool>将每个元素存储为一个位。但是位不能单独寻址,所以 operator[]无法返回 bool&引用连接到位。相反,它返回 vector<bool>::reference ... 和 cin不提供函数重载来处理这个问题。

(juanchopanza 正确地指出你的 vector 没有零元素。但即使它通过 resize 或其他机制做到了,operator[] 不返回引用的事实仍然妨碍。 )

关于c++ - cin 到 boolean vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15617501/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com