有没有一种方法可以使用数组填充向量?

Hon*_*ers 1 c++ arrays vector

我试图用数组中的整数填充向量,但是当我检查向量的内容时,所有值均为零。

我正在使用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。

Obl*_*ica 5

std::vector 为此有一个构造函数:

std::vector<unsigned char> data(buffer, buffer + size);
Run Code Online (Sandbox Code Playgroud)

new几乎总是应避免使用向量。

生活