相关疑难解决方法(0)

'bool'是C++中的基本数据类型吗?

我在编写代码时遇到了这个疑问.'bool'是C++标准中定义的基本数据类型还是编译器提供的某种扩展?我有这个疑问,因为Win32有'BOOL',这只不过是一个长期的typedef.如果我做这样的事情会发生什么:

int i = true;
Run Code Online (Sandbox Code Playgroud)

是否"始终"保证变量i的值为1,还是取决于我使用的编译器?对于一些接受BOOL作为参数的Win32 API,如果我传递bool变量会发生什么?

c++

58
推荐指数
3
解决办法
11万
查看次数

为什么 std::map::erase 返回 int 而不是 bool?

我想知道为什么std::map::erase有一个重载返回一个int代表被删除元素的数量;因此,只要元素是唯一的,那么数字就是10。在这种情况下,为什么它不返回bool而不是返回int

     std::map<std::string, std::size_t> containers{
    {"map", 1}, {"set", 10}, {"map", 5}, {"vector", 4}, {"array", 7}
};

for(auto const& p : containers)
    std::cout << p.first << " " << p.second << '\n';

std::cout << containers.erase("map") << '\n'; // 1
std::cout << containers.erase("map") << '\n'; // 0

for(auto const& p : containers)
    std::cout << p.first << " " << p.second << '\n';
Run Code Online (Sandbox Code Playgroud)

c++ stdmap c++11

3
推荐指数
1
解决办法
373
查看次数

标签 统计

c++ ×2

c++11 ×1

stdmap ×1