我试图用数组中的整数填充向量,但是当我检查向量的内容时,所有值均为零。
我正在使用vector.push_back()尝试填充向量,因此它将以与数组相同的顺序,因为我需要以特定方式对其进行排序。
unsigned char* buffer = new unsigned char[size];
std::vector<unsigned char> *data = new std::vector<unsigned char>(size);
fread(buffer, sizeof(unsigned char), size, f);
for(int transfer = 0; transfer < size; transfer += 1){
std::cout << buffer[transfer];
data->push_back(buffer[transfer]);
std::cout << int(data->at(transfer));
}
fclose(f);
Run Code Online (Sandbox Code Playgroud)
当我打印输出时,我可以看到当它们来自缓冲区数组时这些值不为零,但是当我从数据向量读取时它们却为零。这是一些示例输出?0 $ 0。
std::vector 为此有一个构造函数:
std::vector<unsigned char> data(buffer, buffer + size);
Run Code Online (Sandbox Code Playgroud)
new几乎总是应避免使用向量。