gpt4 book ai didi

c++ - 在 vector 中扩展 vector

转载 作者:行者123 更新时间:2023-11-28 08:14:50 27 4
gpt4 key购买 nike

我通过以下方式定义字符 vector 的 vector 来使用字符矩阵。

std::vector<std::vector <char> > CharMap;
std::vector <char> temp(sizeY, '.');
std::vector <std::vector <char> > temp2(sizeX, temp);
CharMap = temp2;

到目前为止一切正常,但现在我需要在运行时扩展最内层的 vector ,但出了点问题。

cout << (int) CharMap[0].size();
CharMap[0].push_back( '.' );
cout << (int) CharMap[0].size();

CharMap[0] 是一个 char vector 。这段代码编译没有问题。当它运行时, vector 的大小根本不会改变。我在这里要做的就是将大小增加 1,但是两个 cout 的输出是相同的。为什么大小没有增加?

在实际代码中,我将增加所有 CharMap[i] 的大小,遍历 i。但现在即使是这个简化版本也不起作用。

最佳答案

一个快速测试程序似乎按预期工作:

#include <vector>
#include <iostream>

int main() {

std::vector<char> temp(17, '.');
std::vector<std::vector<char> > map(10, temp);

for (int i=0; i<map.size(); i++) {
std::cout << "Before addition, size = " << map[i].size();
map[i].push_back('.');
std::cout << ", after addition, size = " << map[i].size() << "\n";
}
return 0;
}

我想您可以尝试一下,看看它用您的编译器产生了什么——它几乎不可能不会,在这种情况下,您显然已经发现了一个错误。如果它确实有效,那么问题显然出在您没有向我们展示的某些代码中。

关于c++ - 在 vector 中扩展 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8013695/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com