首页 > 解决方案 > 向量的内容似乎为空,但为其分配了一个值(C++)

问题描述

这可能是一个非常基本的 C++ 问题,但我对 C++ 很陌生,因此感谢您的耐心和帮助。

我不太清楚为什么下面的代码无法打印出矩阵的内容。我应该提到,变量K是整数 3。

std::vector<uint8_t> enc_matrix;

for(size_t i = 0; i != K; ++i) {
  enc_matrix[i*(K+1)] = 1;
  cout << "enc_matrix: " << enc_matrix[i*(K+1)] << endl;
  // cout << enc_matrix.at(i*(K+1)) //doesn't show anything either
  cout << "i: " << i*(K+1) << endl;
}

无论出于何种原因,什么都不会被打印出来,enc_matrix[i*(K+1)]但结果i*(K+1)会被打印出来。以下是打印的内容:

enc_matrx: 
i: 0
enc_matrx: 
i: 4
enc_matrx: 
i: 8

我不确定它是否与矩阵的类型有关,所以我在下面提供了附加信息:

typeid(enc_matrix[0]).name()=>h

typeid(enc_matrix).name()=>St6vectorIhSaIhEE

为什么enc_matrix没有打印出来?我希望在等于 0、4 和 81时看到分配给它。谢谢。i

标签: c++

解决方案


推荐阅读