作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们可以像这样使用标准输入来初始化容器双端队列:
deque<int> c((istream_iterator<int>(cin)),(istream_iterator<int>()));
正如《The C++ Standard Library》所描述的,初始化参数周围的额外括号是必要的。没有它们,c 声明了一个返回类型为 deque 的函数。它的第一个参数是 istream_iterator 类型,名称为 cin,并且它的第二个未命名参数的类型是“不带参数的函数返回 istream_iterator”。看下面的代码
deque<int> c(istream_iterator<int>(cin),istream_iterator<int>());
但是额外的括号强制初始化器不匹配声明的语法。我不明白为什么额外的括号会使初始化程序与声明的语法不匹配。非常感谢。
最佳答案
因为C++标准中定义的语法不接受这种形式作为函数声明:
T name((U), (V));
关于C++ 标准库 : initialize a container by using standard input,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10062819/
我是一名优秀的程序员,十分优秀!