本文整理汇总了C++中qUpperBound函数的典型用法代码示例。如果您正苦于以下问题:C++ qUpperBound函数的具体用法?C++ qUpperBound怎么用?C++ qUpperBound使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了qUpperBound函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: Q_Q
void IrcUserModelPrivate::insertUser(int index, IrcUser* user, bool notify)
{
Q_Q(IrcUserModel);
if (index == -1)
index = userList.count();
if (sortMethod != Irc::SortByHand) {
QList<IrcUser*>::iterator it;
if (sortOrder == Qt::AscendingOrder)
it = qUpperBound(userList.begin(), userList.end(), user, IrcUserLessThan(q, sortMethod));
else
it = qUpperBound(userList.begin(), userList.end(), user, IrcUserGreaterThan(q, sortMethod));
index = it - userList.begin();
}
if (notify)
emit q->aboutToBeAdded(user);
q->beginInsertRows(QModelIndex(), index, index);
userList.insert(index, user);
updateTitles();
q->endInsertRows();
if (notify) {
emit q->added(user);
emit q->namesChanged(IrcChannelPrivate::get(channel)->names);
emit q->titlesChanged(titles);
emit q->usersChanged(userList);
emit q->countChanged(userList.count());
if (userList.count() == 1)
emit q->emptyChanged(false);
}
}
开发者ID:Mudlet,项目名称:Mudlet,代码行数:29,代码来源:ircusermodel.cpp
示例2: getTransform
TableCell PageItem_Table::cellAt(const QPointF& point) const
{
QPointF gridPoint = getTransform().inverted().map(point) - gridOffset();
if (!QRectF(0, 0, tableWidth(), tableHeight()).contains(gridPoint))
return TableCell(); // Outside table grid.
return cellAt(
qUpperBound(m_rowPositions, gridPoint.y()) - m_rowPositions.begin() - 1,
qUpperBound(m_columnPositions, gridPoint.x()) - m_columnPositions.begin() - 1);
}
开发者ID:Sheikha443,项目名称:scribus,代码行数:11,代码来源:pageitem_table.cpp
示例3: qLowerBound
void KateLineLayoutMap::slotEditDone(int fromLine, int toLine, int shiftAmount)
{
LineLayoutMap::iterator start =
qLowerBound(m_lineLayouts.begin(), m_lineLayouts.end(), LineLayoutPair(fromLine, KateLineLayoutPtr()), lessThan);
LineLayoutMap::iterator end =
qUpperBound(start, m_lineLayouts.end(), LineLayoutPair(toLine, KateLineLayoutPtr()), lessThan);
LineLayoutMap::iterator it;
if (shiftAmount != 0) {
for (it = end; it != m_lineLayouts.end(); ++it) {
(*it).first += shiftAmount;
(*it).second->setLine((*it).second->line() + shiftAmount);
}
for (it = start; it != end; ++it) {
(*it).second->clear();
}
m_lineLayouts.erase(start, end);
} else {
for (it = start; it != end; ++it) {
(*it).second->setLayoutDirty();
}
}
}
开发者ID:dividedmind,项目名称:kate,代码行数:25,代码来源:katelayoutcache.cpp
示例4: updateEntry
void updateEntry(const QString &address, const QString &label, bool isMine, int status)
{
// Find address / label in model
QList<AddressTableEntry>::iterator lower = qLowerBound(
cachedAddressTable.begin(), cachedAddressTable.end(), address, AddressTableEntryLessThan());
QList<AddressTableEntry>::iterator upper = qUpperBound(
cachedAddressTable.begin(), cachedAddressTable.end(), address, AddressTableEntryLessThan());
int lowerIndex = (lower - cachedAddressTable.begin());
int upperIndex = (upper - cachedAddressTable.begin());
bool inModel = (lower != upper);
AddressTableEntry::Type newEntryType = isMine ? AddressTableEntry::Receiving : AddressTableEntry::Sending;
switch(status)
{
case CT_NEW:
{
if(inModel)
{
OutputDebugStringF("Warning: AddressTablePriv::updateEntry: Got CT_NEW, but entry is already in model\n");
break;
}
parent->beginInsertRows(QModelIndex(), lowerIndex, lowerIndex);
std::string pmkey = "";
std::string a;
a = address.toStdString();
int i;
if (isMine)
{
i = SecureMsgGetLocalPublicKey(a, pmkey);
if (i)
printf("Can't get PM Key for some reason\n");
}
cachedAddressTable.insert(lowerIndex, AddressTableEntry(newEntryType, label, address, QString::fromStdString(pmkey)));
parent->endInsertRows();
break;
}
case CT_UPDATED:
if(!inModel)
{
OutputDebugStringF("Warning: AddressTablePriv::updateEntry: Got CT_UPDATED, but entry is not in model\n");
break;
}
lower->type = newEntryType;
lower->label = label;
parent->emitDataChanged(lowerIndex);
break;
case CT_DELETED:
if(!inModel)
{
OutputDebugStringF("Warning: AddressTablePriv::updateEntry: Got CT_DELETED, but entry is not in model\n");
break;
}
parent->beginRemoveRows(QModelIndex(), lowerIndex, upperIndex-1);
cachedAddressTable.erase(lower, upper);
parent->endRemoveRows();
break;
}
}
开发者ID:ChemCoin,项目名称:Chemcoin,代码行数:60,代码来源:addresstablemodel.cpp
示例5: main
int main()
{
QList<int> list;
list << 3 << 3 << 6 << 6 << 6 << 8;
QList<int>::iterator it;
it = qLowerBound(list.begin(), list.end(), 5);
list.insert(it, 5);
qDebug() << list; // output: ( 3, 3, 5, 6, 6, 6, 8 )
it = qLowerBound(list.begin(), list.end(), 12);
list.insert(it, 12);
qDebug() << list; // output: ( 3, 3, 5, 6, 6, 6, 8, 12 )
it = qLowerBound(list.begin(), list.end(), 12);
list.insert(it, 12);
qDebug() << list; // output: ( 3, 3, 5, 6, 6, 6, 8, 12, 12 )
QVector<int> vect;
vect << 3 << 3 << 6 << 6 << 6 << 8;
QVector<int>::iterator begin6 =
qLowerBound(vect.begin(), vect.end(), 6);
QVector<int>::iterator end6 =
qUpperBound(vect.begin(), vect.end(), 6);
QVector<int> vect2(end6-begin6);
qCopy(begin6, end6, vect2.begin());
qDebug() << vect2; // output: ( 6, 6, 6 )
int count6 = 0;
qCount(vect.begin(), vect.end(), 6, count6);
qDebug() << count6; // output: 3
return 0;
}
开发者ID:bingo2011,项目名称:codes_TheBookOfQT4,代码行数:31,代码来源:main.cpp
示例6: HDEBUG
int BooksBookModel::Data::pickPage(const BooksPos& aPagePos,
const BooksPos& aNextPagePos, int aPageCount) const
{
int page = 0;
if (aPagePos.valid()) {
if (!aNextPagePos.valid()) {
// Last page stays the last
page = iPageMarks.count() - 1;
HDEBUG("last page" << page);
} else {
BooksPos::ConstIterator it = qFind(iPageMarks, aPagePos);
if (it == iPageMarks.end()) {
// Two 90-degrees rotations should return the reader
// back to the same page. That's what this is about.
const BooksPos& pos = (iPageMarks.count() > aPageCount) ?
aPagePos : aNextPagePos;
it = qUpperBound(iPageMarks, pos);
page = (int)(it - iPageMarks.begin());
if (page > 0) page--;
HDEBUG("using page" << page << "for" << pos);
} else {
page = it - iPageMarks.begin();
HDEBUG("found" << aPagePos << "at page" << page);
}
}
}
return page;
}
开发者ID:TeamWew,项目名称:harbour-books,代码行数:28,代码来源:BooksBookModel.cpp
示例7: qUpperBound
double DepthModel::getVolumeByPrice(double price, bool isAsk)
{
if (priceList.count() == 0)
return 0.0;
int currentIndex;
int outside = 1;
if (isAsk)
{
currentIndex = qUpperBound(priceList.begin(), priceList.end(), price) - priceList.begin();
--currentIndex;
if (currentIndex < 0)
return 0.0;
if (currentIndex >= priceList.count() - 1 && price > priceList.last())
outside = -1;
}
else
{
currentIndex = qLowerBound(priceList.begin(), priceList.end(), price) - priceList.begin();
if (currentIndex >= priceList.count())
return 0.0;
if (currentIndex == 0 && price < priceList[0])
outside = -1;
}
return sizeListAt(currentIndex) * outside;
}
开发者ID:JulyIGHOR,项目名称:QtBitcoinTrader,代码行数:32,代码来源:depthmodel.cpp
示例8: refreshName
void refreshName(const std::vector<unsigned char> &inName)
{
LOCK(cs_main);
NameTableEntry nameObj(ValtypeToString(inName),
std::string(""),
NameTableEntry::NAME_NON_EXISTING);
CNameData data;
{
LOCK (cs_main);
if (!pcoinsTip->GetName (inName, data))
{
LogPrintf ("name not found: '%s'\n", ValtypeToString (inName).c_str());
return;
}
nameObj = NameTableEntry(ValtypeToString(inName),
ValtypeToString(data.getValue ()),
data.getHeight ());
}
// Find name in model
QList<NameTableEntry>::iterator lower = qLowerBound(
cachedNameTable.begin(), cachedNameTable.end(), nameObj.name, NameTableEntryLessThan());
QList<NameTableEntry>::iterator upper = qUpperBound(
cachedNameTable.begin(), cachedNameTable.end(), nameObj.name, NameTableEntryLessThan());
bool inModel = (lower != upper);
if (inModel)
{
// In model - update or delete
if (nameObj.nHeight != NameTableEntry::NAME_NON_EXISTING)
{
LogPrintf ("refreshName result : %s - refreshed in the table\n", qPrintable(nameObj.name));
updateEntry(nameObj.name, nameObj.value, nameObj.nHeight, CT_UPDATED);
}
else
{
LogPrintf("refreshName result : %s - deleted from the table\n", qPrintable(nameObj.name));
updateEntry(nameObj.name, nameObj.value, nameObj.nHeight, CT_DELETED);
}
}
else
{
// Not in model - add or do nothing
if (nameObj.nHeight != NameTableEntry::NAME_NON_EXISTING)
{
LogPrintf("refreshName result : %s - added to the table\n", qPrintable(nameObj.name));
updateEntry(nameObj.name, nameObj.value, nameObj.nHeight, CT_NEW);
}
else
{
LogPrintf("refreshName result : %s - ignored (not in the table)\n", qPrintable(nameObj.name));
}
}
}
开发者ID:gjhiggins,项目名称:vcoincore,代码行数:58,代码来源:nametablemodel.cpp
示例9: updateWallet
/* Update our model of the wallet incrementally, to synchronize our model of the wallet
with that of the core.
Call with transaction that was added, removed or changed.
*/
void updateWallet(const uint256 &hash, int status, bool showTransaction)
{
qDebug() << "TransactionTablePriv::updateWallet: " + QString::fromStdString(hash.ToString()) + " " + QString::number(status);
// Find bounds of this transaction in model
QList<TransactionRecord>::iterator lower = qLowerBound(
cachedWallet.begin(), cachedWallet.end(), hash, TxLessThan());
QList<TransactionRecord>::iterator upper = qUpperBound(
cachedWallet.begin(), cachedWallet.end(), hash, TxLessThan());
int lowerIndex = (lower - cachedWallet.begin());
int upperIndex = (upper - cachedWallet.begin());
bool inModel = (lower != upper);
if(status == CT_UPDATED)
{
if(showTransaction && !inModel)
status = CT_NEW; /* Not in model, but want to show, treat as new */
if(!showTransaction && inModel)
status = CT_DELETED; /* In model, but want to hide, treat as deleted */
}
qDebug() << " inModel=" + QString::number(inModel) +
" Index=" + QString::number(lowerIndex) + "-" + QString::number(upperIndex) +
" showTransaction=" + QString::number(showTransaction) + " derivedStatus=" + QString::number(status);
switch(status)
{
case CT_NEW:
if(inModel)
{
qWarning() << "TransactionTablePriv::updateWallet: Warning: Got CT_NEW, but transaction is already in model";
break;
}
if(showTransaction)
{
LOCK2(cs_main, wallet->cs_wallet);
// Find transaction in wallet
std::map<uint256, CWalletTx>::iterator mi = wallet->mapWallet.find(hash);
if(mi == wallet->mapWallet.end())
{
qWarning() << "TransactionTablePriv::updateWallet: Warning: Got CT_NEW, but transaction is not in wallet";
break;
}
// Added -- insert at the right position
QList<TransactionRecord> toInsert =
TransactionRecord::decomposeTransaction(wallet, mi->second);
if(!toInsert.isEmpty()) /* only if something to insert */
{
parent->beginInsertRows(QModelIndex(), lowerIndex, lowerIndex+toInsert.size()-1);
int insert_idx = lowerIndex;
foreach(const TransactionRecord &rec, toInsert)
{
cachedWallet.insert(insert_idx, rec);
insert_idx += 1;
}
parent->endInsertRows();
}
}
开发者ID:compumatrix,项目名称:bitcoinxt,代码行数:63,代码来源:transactiontablemodel.cpp
示例10: updateEntry
void
updateEntry(const QString &name, const QString &value,
int nHeight, int status, int *outNewRowIndex = NULL)
{
// Find name in model
QList<NameTableEntry>::iterator lower = qLowerBound(
cachedNameTable.begin(), cachedNameTable.end(), name, NameTableEntryLessThan());
QList<NameTableEntry>::iterator upper = qUpperBound(
cachedNameTable.begin(), cachedNameTable.end(), name, NameTableEntryLessThan());
int lowerIndex = (lower - cachedNameTable.begin());
int upperIndex = (upper - cachedNameTable.begin());
bool inModel = (lower != upper);
switch(status)
{
case CT_NEW:
if (inModel)
{
if (outNewRowIndex)
{
*outNewRowIndex = parent->index(lowerIndex, 0).row();
// HACK: ManageNamesPage uses this to ensure updating and get selected row,
// so we do not write warning into the log in this case
}
else {
LogPrintf ("Warning: NameTablePriv::updateEntry: Got CT_NOW, but entry is already in model\n");
}
break;
}
parent->beginInsertRows(QModelIndex(), lowerIndex, lowerIndex);
cachedNameTable.insert(lowerIndex, NameTableEntry(name, value, nHeight));
parent->endInsertRows();
if (outNewRowIndex)
*outNewRowIndex = parent->index(lowerIndex, 0).row();
break;
case CT_UPDATED:
if (!inModel)
{
LogPrintf ("Warning: NameTablePriv::updateEntry: Got CT_UPDATED, but entry is not in model\n");
break;
}
lower->name = name;
lower->value = value;
lower->nHeight = nHeight;
parent->emitDataChanged(lowerIndex);
break;
case CT_DELETED:
if (!inModel)
{
LogPrintf ("Warning: NameTablePriv::updateEntry: Got CT_DELETED, but entry is not in model\n");
break;
}
parent->beginRemoveRows(QModelIndex(), lowerIndex, upperIndex-1);
cachedNameTable.erase(lower, upper);
parent->endRemoveRows();
break;
}
}
开发者ID:gjhiggins,项目名称:vcoincore,代码行数:58,代码来源:nametablemodel.cpp
示例11: insertItem
void insertItem( QwtPlotItem *item )
{
if ( item == NULL )
return;
QList<QwtPlotItem *>::iterator it =
qUpperBound( begin(), end(), item, LessZThan() );
insert( it, item );
}
开发者ID:iclosure,项目名称:jdataanalyse,代码行数:9,代码来源:qwt_plot_dict.cpp
示例12: qUpperBound
void QThreadPoolPrivate::enqueueTask(QRunnable *runnable, int priority)
{
if (runnable->autoDelete())
++runnable->ref;
// put it on the queue
QList<QPair<QRunnable *, int> >::iterator at =
qUpperBound(queue.begin(), queue.end(), priority);
queue.insert(at, qMakePair(runnable, priority));
}
开发者ID:fluxer,项目名称:katie,代码行数:10,代码来源:qthreadpool.cpp
示例13: qBinaryFind
void KateLineLayoutMap::insert(int realLine, const KateLineLayoutPtr& lineLayoutPtr)
{
LineLayoutMap::iterator it =
qBinaryFind(m_lineLayouts.begin(), m_lineLayouts.end(), LineLayoutPair(realLine,KateLineLayoutPtr()), lessThan);
if (it != m_lineLayouts.end()) {
(*it).second = lineLayoutPtr;
} else {
it = qUpperBound(m_lineLayouts.begin(), m_lineLayouts.end(), LineLayoutPair(realLine,KateLineLayoutPtr()), lessThan);
m_lineLayouts.insert(it, LineLayoutPair(realLine, lineLayoutPtr));
}
}
开发者ID:dividedmind,项目名称:kate,代码行数:11,代码来源:katelayoutcache.cpp
示例14: qUpperBound
void QThreadPoolPrivate::enqueueTask(QRunnable *runnable, int priority)
{
if (runnable->autoDelete())
++runnable->ref;
// put it on the queue
QList<QPair<QRunnable *, int> >::const_iterator begin = queue.constBegin();
QList<QPair<QRunnable *, int> >::const_iterator it = queue.constEnd();
if (it != begin && priority < (*(it - 1)).second)
it = qUpperBound(begin, --it, priority);
queue.insert(it - begin, qMakePair(runnable, priority));
runnableReady.wakeOne();
}
开发者ID:KDE,项目名称:android-qt5-qtbase,代码行数:13,代码来源:qthreadpool.cpp
示例15: updateEntry
void updateEntry(const QString &address, const QString &label, bool isMine, int status)
{
// Find address / label in model
QList<AddressTableEntry>::iterator lower = qLowerBound(
cachedAddressTable.begin(), cachedAddressTable.end(), address, AddressTableEntryLessThan());
QList<AddressTableEntry>::iterator upper = qUpperBound(
cachedAddressTable.begin(), cachedAddressTable.end(), address, AddressTableEntryLessThan());
int lowerIndex = (lower - cachedAddressTable.begin());
int upperIndex = (upper - cachedAddressTable.begin());
bool inModel = (lower != upper);
AddressTableEntry::Type newEntryType = isMine ? AddressTableEntry::Receiving : AddressTableEntry::Sending;
switch(status)
{
case CT_NEW:
if(inModel)
{
OutputDebugStringF("Warning: AddressTablePriv::updateEntry: Got CT_NOW, but entry is already in model\n");
break;
}
{
CBitcoinAddress addr(address.toStdString());
AddressTableEntry::Category cate = IsMyShare(*wallet, addr.Get()) ? AddressTableEntry::MultiSig : AddressTableEntry::Normal;
parent->beginInsertRows(QModelIndex(), lowerIndex, lowerIndex);
cachedAddressTable.insert(lowerIndex, AddressTableEntry(newEntryType, label, address, cate));
parent->endInsertRows();
}
break;
case CT_UPDATED:
if(!inModel)
{
OutputDebugStringF("Warning: AddressTablePriv::updateEntry: Got CT_UPDATED, but entry is not in model\n");
break;
}
lower->type = newEntryType;
lower->label = label;
parent->emitDataChanged(lowerIndex);
break;
case CT_DELETED:
if(!inModel)
{
OutputDebugStringF("Warning: AddressTablePriv::updateEntry: Got CT_DELETED, but entry is not in model\n");
break;
}
parent->beginRemoveRows(QModelIndex(), lowerIndex, upperIndex-1);
cachedAddressTable.erase(lower, upper);
parent->endRemoveRows();
break;
}
}
开发者ID:60E,项目名称:naocanfen,代码行数:51,代码来源:addresstablemodel.cpp
示例16: qFind
int BooksBookModel::Data::pickPage(const BooksPos& aPagePos) const
{
int page = 0;
if (aPagePos.valid()) {
BooksPos::ConstIterator it = qFind(iPageMarks, aPagePos);
if (it == iPageMarks.end()) {
it = qUpperBound(iPageMarks, aPagePos);
page = (int)(it - iPageMarks.begin()) - 1;
HDEBUG("using page" << page << "for" << aPagePos);
} else {
page = it - iPageMarks.begin();
HDEBUG("found" << aPagePos << "at page" << page);
}
}
return page;
}
开发者ID:TeamWew,项目名称:harbour-books,代码行数:16,代码来源:BooksBookModel.cpp
示例17: updateEntry
void updateEntry(const QString &address, const QString &label, bool isMine, const QString &purpose, int status)
{
// Find address / label in model
QList<AddressTableEntry>::iterator lower = qLowerBound(
cachedAddressTable.begin(), cachedAddressTable.end(), address, AddressTableEntryLessThan());
QList<AddressTableEntry>::iterator upper = qUpperBound(
cachedAddressTable.begin(), cachedAddressTable.end(), address, AddressTableEntryLessThan());
int lowerIndex = (lower - cachedAddressTable.begin());
int upperIndex = (upper - cachedAddressTable.begin());
bool inModel = (lower != upper);
AddressTableEntry::Type newEntryType = translateTransactionType(purpose, isMine);
switch(status)
{
case CT_NEW:
if(inModel)
{
qWarning() << "AddressTablePriv::updateEntry : Warning: Got CT_NEW, but entry is already in model";
break;
}
parent->beginInsertRows(QModelIndex(), lowerIndex, lowerIndex);
cachedAddressTable.insert(lowerIndex, AddressTableEntry(newEntryType, label, address));
parent->endInsertRows();
break;
case CT_UPDATED:
if(!inModel)
{
qWarning() << "AddressTablePriv::updateEntry : Warning: Got CT_UPDATED, but entry is not in model";
break;
}
lower->type = newEntryType;
lower->label = label;
parent->emitDataChanged(lowerIndex);
break;
case CT_DELETED:
if(!inModel)
{
qWarning() << "AddressTablePriv::updateEntry : Warning: Got CT_DELETED, but entry is not in model";
break;
}
parent->beginRemoveRows(QModelIndex(), lowerIndex, upperIndex-1);
cachedAddressTable.erase(lower, upper);
parent->endRemoveRows();
break;
}
}
开发者ID:deuscoin,项目名称:deuscoin,代码行数:46,代码来源:addresstablemodel.cpp
示例18: updateEntry
void updateEntry(const QString &address, const QString &label, const QString &nation, int status)
{
// Find address / label in model
QList<VotingTableEntry>::iterator lower = qLowerBound(
cachedVotingTable.begin(), cachedVotingTable.end(), address, VotingTableEntryLessThan());
QList<VotingTableEntry>::iterator upper = qUpperBound(
cachedVotingTable.begin(), cachedVotingTable.end(), address, VotingTableEntryLessThan());
int lowerIndex = (lower - cachedVotingTable.begin());
int upperIndex = (upper - cachedVotingTable.begin());
bool inModel = (lower != upper);
switch(status)
{
case CT_NEW:
if(inModel)
{
OutputDebugStringF("Warning: VotingTablePriv::updateEntry: Got CT_NOW, but entry is already in model\n");
break;
}
parent->beginInsertRows(QModelIndex(), lowerIndex, lowerIndex);
cachedVotingTable.insert(lowerIndex, VotingTableEntry(label, address, nation));
parent->endInsertRows();
break;
case CT_UPDATED:
if(!inModel)
{
OutputDebugStringF("Warning: VotingTablePriv::updateEntry: Got CT_UPDATED, but entry is not in model\n");
break;
}
lower->label = label;
lower->nation = nation;
parent->emitDataChanged(lowerIndex);
break;
case CT_DELETED:
if(!inModel)
{
OutputDebugStringF("Warning: VotingTablePriv::updateEntry: Got CT_DELETED, but entry is not in model\n");
break;
}
parent->beginRemoveRows(QModelIndex(), lowerIndex, upperIndex-1);
cachedVotingTable.erase(lower, upper);
parent->endRemoveRows();
break;
}
}
开发者ID:joeyfrich,项目名称:EmpireCoin,代码行数:45,代码来源:votingtablemodel.cpp
示例19: floor
double BeatUtils::calculateOffset(
const QVector<double> beats1, const double bpm1,
const QVector<double> beats2, const int SampleRate) {
/*
* Here we compare to beats vector and try to determine the best offset
* based on the occurences, i.e. by assuming that the almost correct beats
* are more than the "false" ones.
*/
const double beatlength1 = (60.0 * SampleRate / bpm1);
const double beatLength1Epsilon = beatlength1 * 0.02;
int bestFreq = 1;
double bestOffset = beats1.at(0) - beats2.at(0);
// Sweep offset from [-beatlength1/2, beatlength1/2]
double offset = floor(-beatlength1 / 2);
while (offset < (beatlength1 / 2)) {
int freq = 0;
for (int i = 0; i < beats2.size(); i += 4) {
double beats2_beat = beats2.at(i);
QVector<double>::const_iterator it = qUpperBound(
beats1.begin(), beats1.end(), beats2_beat);
if (fabs(*it - beats2_beat - offset) <= beatLength1Epsilon) {
freq++;
}
}
if (freq > bestFreq) {
bestFreq = freq;
bestOffset = offset;
}
offset++;
}
if (sDebug) {
qDebug() << "Best offset " << bestOffset << "guarantees that"
<< bestFreq << "over" << beats1.size()/4
<< "beats almost coincides.";
}
return floor(bestOffset + beatLength1Epsilon);
}
开发者ID:Alppasa,项目名称:mixxx,代码行数:41,代码来源:beatutils.cpp
示例20: switch
QList<ShellCommand*>::iterator CommandsModel::getInsertPosition(CommandsModel::SortType type, ShellCommand* command
, QList<ShellCommand*> &searchlist )
{
switch(type)
{
case ByLeastRuns:
return qUpperBound(searchlist.begin(), searchlist.end(), command, ShellCommand::lessUsedThan);
break;
case ByMostRuns:
return qUpperBound(searchlist.begin(), searchlist.end(), command, ShellCommand::moreUsedThan);
break;
case ByName:
return qUpperBound(searchlist.begin(), searchlist.end(), command, ShellCommand::alphabeticallyBefore);
break;
case ByNameReverse:
return qUpperBound(searchlist.begin(), searchlist.end(), command, ShellCommand::alphabeticallyAfter);
break;
case ByNewestCreated:
return qUpperBound(searchlist.begin(), searchlist.end(), command, ShellCommand::newerThan);
break;
case ByOldestCreated:
return qUpperBound(searchlist.begin(), searchlist.end(), command, ShellCommand::olderThan);
break;
case ByNewestRun:
return qUpperBound(searchlist.begin(), searchlist.end(), command, ShellCommand::moreRecentThan);
break;
case ByOldestRun:
return qUpperBound(searchlist.begin(), searchlist.end(), command, ShellCommand::lessRecentThan);
break;
case ByIsRunning:
return binaryBound(searchlist.begin(), searchlist.end());
break;
default:
break;
}
}
开发者ID:Acce0ss,项目名称:shellex,代码行数:36,代码来源:commandsmodel.cpp
注:本文中的qUpperBound函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论