std::vector 在 Tizen 中包含什么库?

What library to include for std::vector in Tizen?

我想将 std::vector 用于我使用 Tizen 创建的应用程序,但我找不到要包含的正确库来识别我的 std::vector... 我有一个语法错误... 是否有 Tizen 特有的 std::vector 等价物?我在网上搜索但没有找到任何东西...

我试过 #include <vector> Tizen 无法识别它,这就是我的问题所在,因为在 "normal" C++ 中它工作正常。只有我将 Tizen 与 Tizen IDE(Eclipse 插件)一起使用,它无法识别该库,所以我想知道我需要包含哪个库(我遇到了一个致命错误:找不到文件时我使用我提到的包含)。

我无法 post 图片,所以这里是错误消息的文字记录:

type name requires a specifier or qualifier
syntax error
expected expression"

关于这一行的所有内容:

std::vector<int> vect;

好的,我找到了答案。似乎 Tizen 使用的是 C 而不是 C++...我没有看到它,因为我在用 C++ 编写代码时有时会使用的一些库被包含在其中,就像它们应该包含的那样。无论如何,我现在只需要找到 vector 的 C 等价物,我的问题就会得到解决。

你说:我在网上搜索,但我没有找到任何东西......

Google "std::vector" 第一击是

http://en.cppreference.com/w/cpp/container/vector 其中说:

定义于header<vector>

所以答案是:学会使用Google。

https://developer.tizen.org/dev-guide/2.2.0/

The Tizen C++ application supports C++ based on the Standard C++ ANSI ISO 14882 2003, which includes the Standard Template Library (STL). This helps developers migrate the pre-existing standard library based applications to the Tizen platform with minimum effort.

More specifically, Tizen supports complete set of libstdc++v3 comprising of standard C++ functions specified in the Standard C++ ANSI ISO 14882 2003 and the entire Standard Template Library (http://www.sgi.com/tech/stl/).

These methods can be used by including the relevant header file in a standard manner, for example, "#include <stdio>". Support for standard C++ library extended to complete set of libstdc++v3 modules, namespaces and classes. For more information, refer to this Web site.

Remarks: The locale based feature is not supported in Tizen.

所以 #include <vector> 应该可以正常工作。

既然你说你不能包含 any C++ 头文件,我怀疑问题是编译器将你的代码编译为 C 而不是 C++。确认您的文件具有 .cpp 扩展名,并在项目中查看该文件的属性以确认 IDE 将该文件视为 C++。 (我不知道那个设置在哪里,我没有 Eclipse)。 This link says to delete your project and create a C++ project instead of a C project, then re-import your files. This link 表示您可以设置 "File Type",但也暗示它不太有效。

我认为错误的答案被接受了...线索在 OP 使用的标签中。

Tizen studio 使用的编译器根据文件扩展名确定源文件或 header 文件是 C 还是 C++。因此,如果您的 header 文件是 .h 并且您包含 < vector > 那么编译器会报错,因为没有适用于 vector 的 C 等效库。

如果您将 header 重命名为 .hpp,或者将您的源重命名为 .cpp,然后重新编译,那么它将编译无误。