cpp中的vector在jni中该如何使用
时间: 2024-03-27 20:35:34 浏览: 72
c++中的vector的使用方法
在 JNI 中使用 C++ 的 Vector 可以按照以下步骤进行:
1. 首先,需要在 JNI 的头文件中引入 `vector` 类的头文件。
```c++
#include <vector>
```
2. 在 JNI 的函数中声明一个 `vector` 类型的变量。
```c++
JNIEXPORT void JNICALL Java_com_example_test_TestClass_testVector(JNIEnv *env, jobject obj) {
std::vector<int> myVector;
}
```
3. 可以使用 `push_back` 函数向 `vector` 中添加元素。
```c++
JNIEXPORT void JNICALL Java_com_example_test_TestClass_testVector(JNIEnv *env, jobject obj) {
std::vector<int> myVector;
myVector.push_back(1);
myVector.push_back(2);
myVector.push_back(3);
}
```
4. 可以使用 `size` 函数获取 `vector` 中元素的个数。
```c++
JNIEXPORT void JNICALL Java_com_example_test_TestClass_testVector(JNIEnv *env, jobject obj) {
std::vector<int> myVector;
myVector.push_back(1);
myVector.push_back(2);
myVector.push_back(3);
int size = myVector.size();
}
```
5. 可以使用 `[]` 运算符或 `at` 函数访问 `vector` 中的元素。
```c++
JNIEXPORT void JNICALL Java_com_example_test_TestClass_testVector(JNIEnv *env, jobject obj) {
std::vector<int> myVector;
myVector.push_back(1);
myVector.push_back(2);
myVector.push_back(3);
int size = myVector.size();
for (int i = 0; i < size; i++) {
int value = myVector[i];
// 或者使用 int value = myVector.at(i);
}
}
```
需要注意的是,由于 JNI 是 C 语言的接口,而 C 语言不支持 C++ 的标准库,所以需要在编译时链接 C++ 的标准库。可以在 Android.mk 中添加以下代码:
```makefile
LOCAL_CPPFLAGS := -std=c++11
LOCAL_LDLIBS := -lstdc++ # 链接 C++ 标准库
```
阅读全文