访问迭代器的许多元素
Accessing numerous elements of an iterator
这可能会很简单,但解决方案目前还没有解决。
该程序显示并允许用户洗牌,然后在用户输入时以洗牌的形式再次显示。目前,我的输出是单行的,直到它迫使自己在超过窗口大小的情况下制作新行。
我需要做的是创建4行13张卡片,我在伪代码中使用的方式是:
if(deck[12])
cout << endl;
然而,我很难让它访问迭代器的元素,这样它就可以在显示了13张卡片后结束这一行。这是我的for循环,显示卡片:
for (vector<const string*>::const_iterator it=deck.begin(); it!= deck.end(); ++it)
{
cout << (*it)->c_str() << ' ';
}
一个单独的计数器怎么样?
int n = 0;
for (vector<const string*>::const_iterator it=deck.begin(); it!= deck.end(); ++it)
{
cout << (*it)->c_str() << ' ';
if (++n == 13)
{
n = 0;
cout << 'n';
}
}
你可以做这样的事情-
if ((it - deck.begin()) % 13 == 0)
{
std::cout << "n";
}
您有52张牌,并且希望将它们显示为4行,每行13张牌。这很简单:
for(int line=0;i<4;++i){for(int card=0;card<13;++card)std::cout<lt*it++);std::cout<lt;'\n';}
其中CCD_ 1被初始化以指向牌组中的第一张牌。注意,代码假设存储在deck中的对象可以直接插入到ostream中。将const string*
更改为string
;你会发现你的生活简单多了。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用strcpy将char数组的元素复制到另一个数组
- 使用不带参数的函数访问结构元素
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- C++如何通过用户输入删除列表元素
- lower_bound()返回最后一个元素
- 基于多个条件处理地图中的所有元素
- 调整大小后指向元素值的指针unordered_map有效?
- 使用std::transform将一个范围的元素添加到另一个范围中
- 使用函数"remove"删除重复元素
- 具有最大子序列大小的序列,每个元素都相同
- 擦除许多矢量元素,同时使用'auto'
- 对许多字段的元素进行排序
- 许多立方体对象的 OpenGL 绘图元素
- 在 std::vector c++ 中存储许多元素
- 如何将许多元素插入到具有相同值的 std::map
- 访问迭代器的许多元素
- 为什么快速排序在有许多重复元素的情况下效率低下
- 为Qt QML中的许多Text元素指定字体