本文整理汇总了C++中std::vector::unrolled方法的典型用法代码示例。如果您正苦于以下问题:C++ vector::unrolled方法的具体用法?C++ vector::unrolled怎么用?C++ vector::unrolled使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类std::vector
的用法示例。
在下文中一共展示了vector::unrolled方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: roll
/**
* Roll an unrolled algorithm history item and remove its children from the
*view.
*
* This removes each of the child algorithm histories (if any) and marks
* the parent as being "rolled up". Note that this will recursively "roll up"
*any child
* history objects that are also unrolled. This method does nothing if
* the history object has no children.
*
* @param it :: iterator to the list of history item objects at the positon to
*roll
*/
void HistoryView::roll(std::vector<HistoryItem>::iterator &it) {
// the number of records after this position
const size_t numChildren = it->numberOfChildren();
if (it->isUnrolled() && numChildren > 0) {
// mark this record as not being ignored by the script builder
it->unrolled(false);
this->rollChildren(it);
// Then just remove the children from the list
++it;
it = m_historyItems.erase(it, it + numChildren);
} else
++it;
}
示例2: unroll
/**
* Unroll an algorithm history to export its child algorithms.
*
* This places each of the child algorithm histories into the
* HistoryView object. The parent is retained as a marker so we can
* "roll" the history back up if we want. This method does nothing if
* the history object has no children
*
* @param it :: iterator to the list of history item objects at the position to
*unroll
*/
void HistoryView::unroll(std::vector<HistoryItem>::iterator &it) {
const auto history = it->getAlgorithmHistory();
const auto childHistories = history->getChildHistories();
if (!it->isUnrolled() && !childHistories.empty()) {
// mark this record as being ignored by the script builder
it->unrolled(true);
// insert each of the records, in order, at this position
std::vector<HistoryItem> tmpHistory(childHistories.cbegin(),
childHistories.cend());
// since we are using a std::vector, do all insertions at the same time.
++it; // move iterator forward to insertion position
it = m_historyItems.insert(it, tmpHistory.begin(), tmpHistory.end());
} else
++it;
}