C 或 C++ 中的 Java ByteArray 等效项

作者:编程家 分类: arrays 时间:2025-08-22

## 在 C 和 C++ 中模拟 Java 的 ByteArray

在 C 和 C++ 中模拟 Java 的 ByteArray,需要使用类似的数据结构来存储字节数据。Java 中的 ByteArray 是一个数组,可以容纳字节并提供一系列方法来操作这些字节。在 C 和 C++ 中,可以使用 `std::vector` 或者原始数组来模拟类似的功能。让我们看一下如何在 C++ 中创建类似于 Java ByteArray 的结构。

### 使用 std::vector 模拟 ByteArray

cpp

#include

#include

class ByteArray {

private:

std::vector data;

public:

// 构造函数

ByteArray() {}

// 向 ByteArray 中添加字节

void addByte(unsigned char byte) {

data.push_back(byte);

}

// 获取 ByteArray 的长度

int length() const {

return data.size();

}

// 获取特定位置的字节

unsigned char getByte(int index) const {

if (index >= 0 && index < data.size()) {

return data[index];

}

// 返回默认值或者抛出异常

return 0; // 这里可以根据需要进行修改

}

// 其他操作,比如删除字节、清空 ByteArray 等,可以根据需求扩展

};

int main() {

ByteArray byteArray;

// 向 ByteArray 中添加字节数据

byteArray.addByte(65); // 添加字母 'A'

byteArray.addByte(66); // 添加字母 'B'

// 获取 ByteArray 的长度并输出

std::cout << "ByteArray 长度: " << byteArray.length() << std::endl;

// 获取特定位置的字节并输出

std::cout << "索引 0 的字节: " << byteArray.getByte(0) << std::endl;

std::cout << "索引 1 的字节: " << byteArray.getByte(1) << std::endl;

return 0;

}

以上是一个简单的例子,展示了如何使用 `std::vector` 模拟 Java 中的 ByteArray。在该例子中,`ByteArray` 类封装了一个 `std::vector` 来存储字节,并提供了方法来添加字节、获取长度以及获取特定位置的字节。

在 C 或 C++ 中模拟 Java ByteArray,可以根据实际需求扩展这个类,并添加更多方法来操作字节数据。这样的模拟使得在 C 和 C++ 中进行字节级别的操作更加方便和灵活。