c++ - 为什么我的 vector 没有按预期初始化?

标签 c++

vector<string> grid();

for(int i = 0; i < 7; i++)
{
     string hello(10, '.');
     grid.push_back(hello);
}

vector<int> newVec(grid.size(), 0);

for(int i = 0; i < grid.size(); i++)
{
     if(grid[0][i] = '.')
            newVec[i] == 1;
}

你会期望 newVec 现在的所有元素都等于 1。但我总是得到全 0。有帮助吗?

最佳答案

至少有两点是错误的:

  • 您可能希望 if(grid[0][i] = '.')if(grid[0][i] == '.')。不过,这不是问题的原因。
  • 您希望 newVec[i] == 1;newVec[i] = 1;。这就是为什么 newVec 中的元素未将其值设置为 1 的原因。

关于c++ - 为什么我的 vector 没有按预期初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8103201/

相关文章:

Emacs 中的 C++ 库/ header

c++ - MFC:拖动滚动条拇指时的奇怪行为

c++ - 解决无法将函数模板虚拟化的问题?

c++ - 如何判断哪些函数在编译时被评估?

c++ - 如何优化间接基数排序? (又名如何优化不可预测的内存访问模式)

c++ - 链接到静态 .lib 的问题链接到静态 .lib

c++ - 如何在对象容器中搜索数据成员值?

c++ - 为什么删除的移动语义会导致 std::vector 出现问题?

c++ - Unsigned int 取负值

c++ - 是否允许在 decltyped 的变量的初始化程序中使用 decltype?