作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面的代码使用一个空的 C+11 样式初始化器。运行时结果是 std::vector
包含一项,似乎是默认构造的。
这显然是人为的情况,有更好的方法来构造空向量。尽管如此,这种行为是违反直觉的。这是编译器/c++ 运行时库错误吗?
我怀疑 std::vector
之一的其他构造函数实际上在这里被调用。
#include <iostream>
#include <memory>
#include <vector>
int main(int argc, const char * argv[])
{
typedef std::vector<std::shared_ptr<int>> Container;
Container c{{}};
std::cout << "Vector size is: " << c.size() << std::endl;
for (auto item: c)
{
std::cout << "Item: " << item.get() << std::endl;
}
}
Vector size is: 1
Item: 0x0
Program ended with exit code: 0
$ clang --version
Apple clang version 3.0 (tags/Apple/clang-211.12) (based on LLVM 3.0svn)
Target: x86_64-apple-darwin12.4.0
最佳答案
Container c;
是一个空容器或 Container c{};
Container c{{}};
使用默认构造的 std::shared_ptr<int>
构造容器Container c{{},{}};
构造 2 shared_ptr
秒
关于c++11 - 空的 C++11 初始值设定项列表导致具有一个默认构造对象的容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21189491/
我想成为 Spark 纱客户(link)。是否需要安装hadoop?还是只安装 yarn 可以吗? (by this link) 最佳答案 No Spark不需要Hadoop即可运行。 Apache
我是一名优秀的程序员,十分优秀!