带有静态数组成员变量的迭代器
Iterator with Static Array Member variable
为迭代器定义静态数组成员变量是个坏主意吗?
在下面的嵌套循环中,静态数组会被创建和销毁1000次吗?(假设我们使用编译器优化)
X
是一个具有begin()
和end()
成员函数的范围对象。这两个成员函数都返回一个带有静态数组成员变量的迭代器。
for (int i = 0; i < 1000; ++i) {
for (auto i: X) {
// do stuff.
}
}
我假设您希望在每个循环的迭代器构造时将一些内容复制到静态数组中。我进一步假设您覆盖了整个数组,您这样做是因为您已经意识到,否则数据将丢失。如果你用它来求sg,我很乐意抛弃这个假设。Else,这是range的常见问题。您的代码将无法重入,更不用说线程安全了。这意味着,取决于你怎么做,你甚至可能不能做嵌套循环。这是个非常坏主意……讨厌,就像你得到的范围和临时工一样糟糕。也许最好的方法/解决方法是将shared_ptr<>保留为您想要保留的内容。如果您为ptr写入begin()和end(),则可能包括范围本身,而不是范围。
相关文章:
- 使用std::multimap迭代器创建std::list
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- C++中带有List类的迭代器Segfault
- 如何在 c++ 中将字符串迭代器变量传递给函数?
- 迭代器或反向器的一个变量
- ActorItr 迭代器变量中有什么,* ActorItr 返回什么?
- 从迭代器转换为变量的类型.(C++11 模板)
- 如何将迭代器变量声明为私有成员变量
- C :我可以将成员变量的迭代器带入班级之一
- 作为变量的目录迭代器值
- 迭代器变量在C 中表现奇怪
- 从模板中的迭代器推断变量的类型,out使用auto
- 是 STL 容器静态变量的迭代器
- 模板变量作为unordered_map键,迭代器问题
- C++迭代器值到变量
- 为什么使用迭代器时无法使用成员函数获取成员变量<set>?
- 如何为未知容器声明迭代器变量
- 带有静态数组成员变量的迭代器
- 变量中的Reverse_iterator和迭代器抽象
- 使用vector对象数组将变量与迭代器匹配