我正在嘗試使用以下代碼初始化C++ 11中的字符串列表,以及由於各種原因而失敗。錯誤說我需要使用構造函數來初始化列表,我應該使用類似list<string> s = new list<string> [size]
的東西嗎?我在這裏錯過了什麼?初始化C++中的字符串列表11
#include<string>
#include<list>
#include<iostream>
using namespace std;
int main() {
string s = "Mark";
list<string> l {"name of the guy"," is Mark"};
cout<<s<<endl;
int size = sizeof(l)/sizeof(l[0]);
for (int i=0;i<size;i++) {
cout<<l[i]<<endl;
}
return 0;
}
I/O是
strtest.cpp:8:47: error: in C++98 ‘l’ must be initialized by constructor, not
by ‘{...}’
list<string> l {"name of the guy"," is Mark"};
這是沒有問題的,但你真的需要額外的東西,'STD: :endl'呢? ''\ n''結束一行。 –
要獲得列表'l'中的元素數目,請調用'l.size()'。這個'sizeof'舞蹈只適用於C風格的數組。 –
您的錯誤消息似乎是告訴你,你正在用C++ 98而不是11 –