我正在学习cpp。我今天在Mac的命令行中编写了一个通过g ++编译的正常模式的程序。我一直在双重检查我的XCode中工作,以及发现的代码行,导致该代码无法在IDE编译从多维数组中返回数组
线路:
string result[2] = subject[rand() % nsubject];
,其中主体是一个多维数组其中的每个成员都是两个字符串的数组,nsubject是一个保存数组长度的int。 Xcode的说法是:数组初始化必须是一个初始化列表,但如前所述,g ++编译时没有任何投诉。所以,对于这个语言来说,我认为这种说法可能是不好的形式。必须有一些XCode可以接受的方法,是的?
这里是一个可以说明问题,从上下文中取出并没有多大意义上的片段,但下面编译我的终端精精,但未能在Xcode中创建:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
using namespace std;
int main(){
string subject[][2] = {
{"a", "b"},
{"c", "d"},
{"e", "f"},
{"g", "h"},
{"i", "j"}
};
int nsubject = sizeof subject/sizeof subject[0];
srand(static_cast<unsigned>(time(0)));
string result[2] = subject[rand() % nsubject];
cout << result[0] << endl; //should return 'a','c','e','g' or 'i'
return EXIT_SUCCESS;
}
数组没有很多功能。使用'std :: array'作为你期望的语义。 – chris
请发表一个最小的工作示例来展示您的问题。很难说出与上下文中单一行的关系。 – 2012-10-14 01:12:50
好的,我添加了一个片段 – awfulHack