本文整理汇总了C++中map::cbegin方法的典型用法代码示例。如果您正苦于以下问题:C++ map::cbegin方法的具体用法?C++ map::cbegin怎么用?C++ map::cbegin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类map
的用法示例。
在下文中一共展示了map::cbegin方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: while
void grouped_vocabulary_tree<Point, K>::merge_maps(map<int, int>& map1, const map<int, int>& map2)
{
using iter = map<int, int>::iterator;
using citer = map<int, int>::const_iterator;
iter it1 = map1.begin();
citer it2 = map2.cbegin();
iter end1 = map1.end();
citer end2 = map2.cend();
while (it2 != end2) {
bool done1 = it1 == end1;
if (!done1 && it1->first == it2->first) { // element already in 1, just increase count
it1->second += it2->second;
++it1;
++it2;
}
else {
if (done1 || it1->first > it2->first) {
// from c++11 docs:
// The function optimizes its insertion time if position points to the element
// that will follow the inserted element (or to the end, if it would be the last).
map1.insert(it1, *it2);
++it2;
}
else {
++it1; // if map1 is large while map2 is small this will not give better than const time insertion
}
}
}
}
示例2: GetRecordByFields
int Database::GetRecordByFields(const string tableName, map<string, string> fieldValues, vector< map<string, string> >* out, string sortField, bool bAsc) const
{
if (!Util::IsLetterNumberDash(tableName) || !Util::IsLetterNumberDash(sortField))
return 2;
string order = " ORDER BY " + sortField + (bAsc ? " ASC;" : " DSC;");
string sql = "SELECT * FROM " + tableName + " WHERE ";
auto it = fieldValues.cbegin();
while (it != fieldValues.cend())
{
if (!Util::IsLetterNumberDash((*it).first))
return 2;
sql.append(Util::ToUpper((*it).first + "='"));
//*TODO: Check value
sql.append((*it).second + "'");
++it;
if (it != fieldValues.cend())
sql.append(" AND ");
}
sql += order;
return Exec(sql, out);
}
示例3: map_intersection
void map_intersection(map<Key, Value>& lhs, map<Key, Value> const& rhs)
{
typedef typename map<Key, Value>::iterator input_iterator1;
typedef typename map<Key, Value>::const_iterator input_iterator2;
input_iterator1 it1 = lhs.begin();
input_iterator2 it2 = rhs.cbegin();
input_iterator1 end1 = lhs.end();
input_iterator2 end2 = rhs.cend();
while (it1 != end1 && it2 != end2) {
if (it1->first == it2->first) {
it1->second += it2->second;
++it1;
++it2;
}
else {
if (it1->first < it2->first) {
++it1;
}
else {
++it2;
}
}
}
}
示例4:
void EulerUtils::Display::printMap ( string itemName, const map<string, int>& data ) {
cout << "in printMap" << endl;
cout << "Printing " << itemName << "..." << endl;
for ( auto i = data.cbegin(); i != data.cend(); i++ )
cout << i->first << ": " << i->second << endl;
cout << endl;
}
示例5: AddRecord
int Database::AddRecord(const string tableName, const map<string, string> newEntry)
{
if (!Util::IsLetterNumberDash(tableName))
return 2;
string sql = "INSERT INTO " + tableName + " (";
auto it = newEntry.cbegin();
while(it != newEntry.cend())
{
if (!Util::IsLetterNumberDash((*it).first))
return 2;
if (Util::ToUpper((*it).first).compare("ID") == 0)
{
++it;
continue;
}
sql.append(Util::ToUpper((*it).first));
++it;
if (it != newEntry.cend())
sql.append(",");
else
sql.append(") ");
}
sql.append("VALUES(");
it = newEntry.cbegin();
while (it != newEntry.cend())
{
//*TODO: Check values
sql.append("'" + (*it).second + "'");
++it;
if (it != newEntry.cend())
sql.append(",");
else
sql.append(");");
}
return Exec(sql);
}
示例6: AddFeasCat
void Model::AddFeasCat(map<string, int> feaofcat, string catname,int threshold)
{
auto itfc = feaofcat.cbegin();
int count = 1;
while (itfc != feaofcat.cend())
{
if (itfc->second <= threshold)
{
++itfc;
continue;
}
stringstream query;
query<< "insert into fc (feature,cat,count) values ('" << itfc->first << "','" << catname << "'," << itfc->second << ")";
this->ExecuteSQL(query.str().c_str());
++itfc;
}
}
示例7: showMap
std::string RelationManager::showMap(const map<const Class *, set<const Class *> > &map, std::string msg) const
{
std::string s;
if (map.empty()) return "";
if (msg != "")
s.append(msg + "\n");
for (auto i = map.cbegin(); i != map.cend(); i++) {
s.append(i->first->getName() + ": ");
for (auto j = i->second.cbegin(); j != i->second.cend(); j++)
s.append((*j)->getName() + " ");
s.append("\n");
}
return s.append("\n");
}
示例8: contained_in
bool Model::contained_in( map<unsigned int, shared_ptr<list< shared_ptr<pair_sc> > > > &m,
const shared_ptr<pair_sc> & sc, bool opt, bool debug) {
for( auto iitm = m.cbegin(); iitm != m.cend(); iitm ++) {
if (sc->signature != (sc->signature | iitm->first)) continue;
for ( auto il = iitm->second->begin(); il != iitm->second->end(); il++) {
if( (*il)->contains(sc, fpfp_sim))
return true;
}
}
if ( !opt) return false;
for( auto iitm = m.begin(); iitm != m.end(); iitm ++) {
if (iitm->first != (sc->signature | iitm->first)) continue;
auto ed = iitm->second;
//for ( unsigned i = 0; i < ed->size(); i++) {
for ( auto il = ed->begin(); il != ed->end(); il++) {
if ( ! (*il)->valid) {
if (!debug)
ed->erase(il++);
continue;
}
if( sc->contains(*il, fpfp_sim)) {
(*il)->clean_children();
if (debug)
(*il)->valid = false;
else
ed->erase(il++);
}
}
}
return false;
}
示例9: addTransactions
void Book::addTransactions(map<float, int>& _transactions)
{
if (_transactions.size() > 0)
addTransactions(_transactions.cbegin(), _transactions.cend());
}
示例10: size
static int size(const map<unsigned int, shared_ptr<list<shared_ptr<pair_sc> > > > &m) {
int s = 0;
for( auto iitm = m.cbegin(); iitm != m.cend(); iitm ++)
s += iitm->second->size();
return s;
}