C++ 向量字符串的向量问题

C++ 向量字符串的向量问题,c++,C++,我正处于向量声明的情况。在windows上没关系,我可以在vectorv={{me,you}}这样的结构中声明,但在linux机器上..只有错误,所以我必须在结构初始化后声明它,但是如何声明,因为mystruct.vec[0]={me,you}给了我一个分段错误。有什么建议吗?如果您使用的是GCC,您需要一个支持此C++11初始化功能的版本,然后您需要告诉编译器在C++11模式下编译,方法是为4.7系列传递-std=C++0x标志或=std=C++11。参见,根据GCC 4.7.2编译: #in

我正处于向量声明的情况。在windows上没关系,我可以在vectorv={{me,you}}这样的结构中声明,但在linux机器上..只有错误,所以我必须在结构初始化后声明它,但是如何声明,因为mystruct.vec[0]={me,you}给了我一个分段错误。有什么建议吗?

如果您使用的是GCC,您需要一个支持此C++11初始化功能的版本,然后您需要告诉编译器在C++11模式下编译,方法是为4.7系列传递-std=C++0x标志或=std=C++11。参见,根据GCC 4.7.2编译:

#include <vector> 
#include <string>   
int main() 
{   
  std::vector<std::vector<std::string>> v = {{"me","you"}}; 
}

如果您使用的是GCC,那么您需要一个支持此C++11初始化功能的版本,然后您需要通过为4.7系列传递-std=C++0x标志或=std=C++11来告诉编译器以C++11模式编译。参见,根据GCC 4.7.2编译:

#include <vector> 
#include <string>   
int main() 
{   
  std::vector<std::vector<std::string>> v = {{"me","you"}}; 
}

gcc 4.7.2上的此程序运行良好:

包括 包括 包括 包括 使用::std::vector; 使用::std::string; 使用::std::move; 矢量foo { 向量={{我,你}}; 返回movev; } int main { 使用::std::cout;
coutgcc 4.7.2上的此程序运行良好:

包括 包括 包括 包括 使用::std::vector; 使用::std::string; 使用::std::move; 矢量foo { 向量={{我,你}}; 返回movev; } int main { 使用::std::cout;
在windows和linux上可能没有不同的编译器版本或编译器。请指定您正在使用的编译器,或者为解决方案将linux框升级到最新的编译器。这种初始化相对较新-它是C++11。还不是所有的编译器都提供对标准的完全支持。在windows上,我使用的是代码块mingw和linux上最新的gcc。@siloan:那么在linux上构建时您忘记了-std=c++11标志。@ChrisCondy>>在c++11中是可以的。windows和linux上可能有不同的编译器版本或编译器。请指定您正在使用的编译器,或者为解决方案将linux框升级到最新的编译器。这种初始化是相对的很新-它是C++11。还不是所有的编译器都提供对该标准的完全支持。在windows上,我在linux上使用带有mingw和最新gcc的代码块。@siloan:那么在linux上构建时,您忘记了-std=C++11标志。@ChrisCondy>>在C++11中是可以的。@siloan-看起来初始化列表是在4.4中引入的。您确定是用-std=gnu++0x或-std=c++0x标志?是的,我正在使用该标志编译,对于这个'std::vector v={{{me,you}}它给了我一个错误的答案。然后,看起来支持是半破碎的或者::STD::矢量在LISSTDC++ + + C++标准库没有被设置为使用它。@ SILOAN:GCC 4.4在2009年4月发布,所以它是一个4年的编译器。刚刚安装了4.7GCC的Ubuntu,现在它已经很好地使用了这个标志,谢谢大家帮助我。t!@siloan-看起来初始化列表是在4.4中引入的。你确定你是用-std=gnu++0x或-std=c++0x标志编译的吗?是的,我是用那个标志编译的,对于这个'std::vector v={{me,you}}它给了我一个错误的答案。然后,看起来支持是半破碎的或者::STD::矢量在LISSTDC++ + + C++标准库没有被设置为使用它。@ SILOAN:GCC 4.4在2009年4月发布,所以它是一个4年的编译器。刚刚安装了4.7GCC的Ubuntu,现在它已经很好地使用了这个标志,谢谢大家帮助我。T