本文整理汇总了C++中std::vector::getAlgorithmHistory方法的典型用法代码示例。如果您正苦于以下问题:C++ vector::getAlgorithmHistory方法的具体用法?C++ vector::getAlgorithmHistory怎么用?C++ vector::getAlgorithmHistory使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类std::vector
的用法示例。
在下文中一共展示了vector::getAlgorithmHistory方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: writeHistoryToStream
/**
* Write out an algorithm to the script.
*
* If the entry is unrolled this will recurse and output the children of
* that entry instead. If not, it will just output the algorithm to the stream.
*
* @param os :: output string stream to append algorithms to.
* @param iter :: reference to the iterator pointing to the vector of history items
* @param depth :: count of how far we've recursed into the history
*/
void ScriptBuilder::writeHistoryToStream(std::ostringstream& os, std::vector<HistoryItem>::const_iterator& iter, int depth)
{
auto algHistory = iter->getAlgorithmHistory();
if(iter->isUnrolled())
{
os << "\n";
os << std::string(depth, '#');
os << " Child algorithms of " << algHistory->name() << "\n";
//don't create a line for the algorithm, just output its children
buildChildren(os, iter, depth+1);
os << std::string(depth, '#');
os << " End of child algorithms of " << algHistory->name() << "\n";
if(boost::next(iter) == m_historyItems.end()
|| !boost::next(iter)->isUnrolled())
{
os << "\n";
}
}
else
{
//create the string for this algorithm
os << buildAlgorithmString(algHistory) << "\n";
}
}
示例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;
}
示例3: writeHistoryToStream
/**
* Write out an algorithm to the notebook.
* If the entry is unrolled this will recurse and output the children of
* that entry instead. If not, it will just output the algorithm to the stream.
*
* @param iter :: reference to the iterator pointing to the vector of history
*items
*/
void NotebookBuilder::writeHistoryToStream(
std::vector<HistoryItem>::const_iterator &iter) {
auto algHistory = iter->getAlgorithmHistory();
if (iter->isUnrolled()) {
m_nb_writer->markdownCell(std::string("Child algorithms of ") +
algHistory->name());
buildChildren(iter);
m_nb_writer->markdownCell(std::string("End of child algorithms of ") +
algHistory->name());
} else {
// create the string for this algorithm
m_nb_writer->codeCell(buildAlgorithmString(algHistory));
}
}