gpt4 book ai didi

c++ - std::vector 与 C++ 中的原始数组有多相似?

转载 作者:搜寻专家 更新时间:2023-10-31 01:23:45 24 4
gpt4 key购买 nike

我正在编写刽子手游戏。我有一个逻辑失败,我自己和我的游戏逻辑。 Char guess(猜到的字母)没有被添加到 vector guessArray 的正确内存槽中。假设该词是用户输入的词。

如果 guessArray 是原始数组,我假设这会起作用。有什么原因这不适用于 vector 吗?

//assume that attempts is num of attempts left
void coutWord(int attempts, std::string word, char guess)
{
std::vector<char> guessArray(word.length());


//this is supposed to add the guess to the correct area of guessArray;
//It's not.

for (int i = 0; i < word.length(); i++) {
if (guess == word[i]) {
guessArray[i] = guess;
std::cout << " " << guessArray[i] << " ";
continue;
}

std::cout << " _ ";
}

std::cout << std::endl << std::endl;
}

编辑:我使用这段代码的目的是计算出同一个 for 循环中所有未被猜测的空格和被猜测的空格。我只需要“记住”以前的猜测,以便获得正确的输出。给定单词 = "Applesauce":

Input: a
a _ _ _ _ _ a _ _ _
Input: p
a p p _ _ _ a _ _ _

最佳答案

vector 可以用下标符号[]索引,并且存储在连续的内存中。它是一个 STL 容器,因此,就像数组一样,您可以拥有任何类型之一。

vector 会自动调整大小。数组的大小是“静态”的,不能轻易调整大小(调用 realloc 的手动函数除外。)您可以使用 push_back 函数来处理这个问题,您也可以提前 .reserve() 内存来保存关于重新分配。

数组不跟踪它自己的大小,而 vector 具有可以检查它的函数。

如果您不确定 vector 的大小,请继续使用 .push_back() 添加项目以处理自动调整大小的问题。如果您通过 resize() 保留一 block 内存然后对其进行索引,则它更容易用作数组,但您会失去将其用作动态大小对象的一些语法优势。

关于c++ - std::vector 与 C++ 中的原始数组有多相似?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/792152/

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