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;
}
Run Code Online (Sandbox Code Playgroud)
我不知道我做错了什么.有人可以帮帮我吗?
std::initializer_list<std::string> a({"hello", "stackoverflow"});
Run Code Online (Sandbox Code Playgroud)
如果我声明为:
std::initializer_list<std::string> a{"hello", "stackoverflow"}; //without ()
Run Code Online (Sandbox Code Playgroud)
然后它就可以工作了: 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;
Run Code Online (Sandbox Code Playgroud)
代码: http: //ideone.com/hXr7V
归档时间: |
|
查看次数: |
1520 次 |
最近记录: |