gpt4 book ai didi

c++ - 具有自定义 vector 类型的堆栈

转载 作者:行者123 更新时间:2023-11-28 02:40:09 27 4
gpt4 key购买 nike

我有一个 Block 类型,它是一个包含 4 个整数的 vector 。

typedef vector<int> Block;

我有一个 Block vector 。

vector<Block> blockCollection

现在,假设我想在某个任意函数中对这些 block 进行排序/搜索。为此,我使用了一个堆栈:

stack<Block> blockStack;

blockStack 中的每个 Block 都是一个包含 4 个整数的 vector 。如何访问或显示 blockStack 中的每个元素?

最佳答案

堆栈旨在用于您向容器的一侧添加值并且访问容器同一侧的顶部元素的应用程序。看着the functions available to the stack应该让您清楚地知道为什么会这样——您在插入和访问操作方面非常有限。如果您的程序需要比这更多的功能,那么堆栈可能不是一个好的数据结构选择。

我建议您改用 std::vector。您有两种方法来访问 std::vector 的内容:下标运算符 [] 和成员函数 at() (如果请求的索引超出范围,后者将抛出错误)。我们还有一种使用 for 循环迭代 std::vector 的简单方法。

如果不使用 C++11:

for(vector<vector<Block>>::iterator iter = myVector.begin(); iter != myVector.end(); ++iter)
{
//do stuff to iter
}

使用 C++11 使语法更简单:

for(auto value : myVector)    //read-only. to alter value, change to auto&
{
//do stuff to value
}

关于c++ - 具有自定义 vector 类型的堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26265629/

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