如何使用C++(g++编译器)初始化一个无序集
How to initialize an unorderd_set using C++ (g++ compiler)?
我在尝试用g++编译示例代码时观察到以下错误
#include <iostream>
#include <unordered_set>
int main () {
std::unordered_set<std::string> second ( {"red","green","blue"} ); // init list
std::unordered_set<std::string> second1 {"red", "green", "blue"}; // Marcelo Cantos
std::unordered_set<std::string> second2{{"red", "green", "blue"}}; // Marcelo Cantos
std::unordered_set<std::string> second3 = {"red", "green", "blue"};// Marcelo Cantos
return 0;
}
$ gcc -o wp -Wall -Wextra test_set.cpp
test_set.cpp:5:45: error: expected expression
std::unordered_set<std::string> second ( {"red","green","blue"} )...
^
test_set.cpp:6:43: error: expected ';' at end of declaration
std::unordered_set<std::string> second1 {"red", "green", "blue"};
^
;
test_set.cpp:7:43: error: expected ';' at end of declaration
std::unordered_set<std::string> second2{{"red", "green", "blue"}};
^
;
test_set.cpp:8:36: error: non-aggregate type 'std::unordered_set<std::string>' cannot be initialized with an initializer list
std::unordered_set<std::string> second3 = {"red", "green", "blue"};
^ ~~~~~~~~~~~~~~~~~~~~~~~~
4 errors generated.
$ g++ --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.3.0
Thread model: posix
使用编译器选项"-std=c++11"解决。
$g++-o testronget-Wall-Wextra-std=c++11 testronget.cpp
使用编译器选项"-std=c++11"求解。
$ g++ -o test_set -Wall -Wextra -std=c++11 test_set.cpp
适用于我。
Apple LLVM version 6.0 (clang-600.0.51) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin13.4.0
Thread model: posix
您可以尝试以下替代形式之一,所有这些形式都适用于clang 6.0:
…second{"red", "green", "blue"};
…second{{"red", "green", "blue"}};
…second = {"red", "green", "blue"};
相关文章:
- 如何将一个单词拆分成字母,并将它们放入一个无序的列表/集合中
- 仅从无序集合中删除一个项目
- 将一个向量对放在一个无序映射与一个映射中
- 如何从一个无序集合中获取一个元素
- 以std::字符串作为关键字,按字典顺序对一个无序映射进行排序
- 使用shared_ptr<字符串>转换为一个无序集合<字符串>
- 如何使用一个整数数组作为一个无序映射的键
- C++将一个值存储在无序对中
- 对一个无序映射c++进行排序时数据丢失
- 如何在一个无序映射中存储2个以上的变量
- 声明一个无符号int和一个数组的无序映射(将具有不同的大小)
- 判断一个键是否在一个c++无序映射中最省时的方法是什么
- 插入到一个无序映射的无序映射中
- 将向量排序到一个无序映射c++11中
- 如何使用C++(g++编译器)初始化一个无序集
- 包含一个图形节点作为关键字的无序映射
- 如何在C++中迭代一个无序的集合
- 为什么我可以在一个文件中无序地初始化两个静态类变量,而不能初始化三个
- 填充一个无序的vector元素指针队列
- 使用自定义哈希函数插入到一个无序集合中