Joh*_*itb 9 c++ iterator c++11 stdinitializerlist
我已经尝试了我的G ++版本的C++ 0x初始化列表实现,但它只输出空行.
#include <initializer_list>
#include <iostream>
#include <string>
int main() {
  std::initializer_list<std::string> a({"hello", "stackoverflow"});
  for(auto it = a.begin(), ite = a.end(); it != ite; ++it)
    std::cout << *it << std::endl;
}
我不知道我做错了什么.有人可以帮帮我吗?
std::initializer_list<std::string> a({"hello", "stackoverflow"});
如果我声明为:
std::initializer_list<std::string> a{"hello", "stackoverflow"}; //without ()
然后它就可以工作了: http: //ideone.com/21mvL
但这很奇怪。看起来它是一个编译器错误。
编辑:
它肯定是一个编译器错误,因为如果我编写(*it).c_str()它会打印字符串!
std::initializer_list<std::string> a({"hello", "stackoverflow"}); //with ()
for(auto it = a.begin(), ite = a.end(); it != ite; ++it)
   std::cout << (*it).c_str() << std::endl;
代码: http: //ideone.com/hXr7V
| 归档时间: | 
 | 
| 查看次数: | 1520 次 | 
| 最近记录: |