From 5ecdd502a96ae0270a7022dace4cd56da505fc8c Mon Sep 17 00:00:00 2001 From: Geir Storli Date: Fri, 7 Jul 2023 11:32:10 +0000 Subject: Modernize C++ code with auto and range-based loops. --- .../vespa-index-inspect/vespa-index-inspect.cpp | 72 +++++++--------- searchlib/src/vespa/searchcommon/common/schema.cpp | 13 ++- .../src/vespa/searchlib/aggregation/group.cpp | 2 +- .../src/vespa/searchlib/aggregation/grouping.cpp | 2 +- .../attribute/attribute_weighted_set_blueprint.cpp | 4 +- .../vespa/searchlib/attribute/attributecontext.cpp | 2 +- .../vespa/searchlib/attribute/attributemanager.cpp | 18 ++-- .../searchlib/attribute/posting_list_merger.cpp | 2 +- .../vespa/searchlib/attribute/postingchange.cpp | 21 ++--- .../vespa/searchlib/bitcompression/pagedict4.cpp | 3 +- .../src/vespa/searchlib/common/bitvectorcache.cpp | 4 +- .../searchlib/diskindex/bitvectordictionary.cpp | 3 +- .../src/vespa/searchlib/diskindex/diskindex.cpp | 2 +- .../src/vespa/searchlib/diskindex/fieldreader.cpp | 5 +- .../searchlib/diskindex/zc4_posting_writer.cpp | 17 ++-- searchlib/src/vespa/searchlib/docstore/chunk.cpp | 12 +-- .../src/vespa/searchlib/docstore/logdatastore.cpp | 21 ++--- .../src/vespa/searchlib/engine/propertiesmap.cpp | 2 +- .../searchlib/expression/documentfieldnode.cpp | 2 +- .../src/vespa/searchlib/expression/resultvector.h | 10 +-- .../searchlib/features/fieldlengthfeature.cpp | 7 +- .../features/flow_completeness_feature.cpp | 4 +- .../features/querycompletenessfeature.cpp | 6 +- .../src/vespa/searchlib/fef/blueprintfactory.cpp | 2 +- searchlib/src/vespa/searchlib/fef/objectstore.cpp | 4 +- searchlib/src/vespa/searchlib/fef/properties.cpp | 50 +++++------ searchlib/src/vespa/searchlib/fef/tablemanager.cpp | 2 +- .../vespa/searchlib/fef/test/matchdatabuilder.cpp | 21 ++--- .../src/vespa/searchlib/fef/test/rankresult.cpp | 27 +++--- searchlib/src/vespa/searchlib/grouping/collect.h | 2 +- .../src/vespa/searchlib/grouping/groupengine.cpp | 6 +- .../vespa/searchlib/index/postinglistparams.cpp | 12 +-- .../vespa/searchlib/memoryindex/field_inverter.cpp | 6 +- .../src/vespa/searchlib/queryeval/nearsearch.cpp | 6 +- .../test/fakedata/fakeegcompr64filterocc.cpp | 8 +- .../searchlib/test/fakedata/fakefilterocc.cpp | 13 +-- .../searchlib/test/fakedata/fakememtreeocc.cpp | 34 ++++---- .../src/vespa/searchlib/test/fakedata/fakeword.cpp | 98 ++++++++-------------- .../searchlib/test/fakedata/fakezcbfilterocc.cpp | 8 +- .../searchlib/test/fakedata/fakezcfilterocc.cpp | 12 +-- .../vespa/searchlib/test/fakedata/fpfactory.cpp | 9 +- .../searchlib/test/mock_attribute_context.cpp | 12 +-- .../searchlib/test/mock_attribute_manager.cpp | 2 +- .../searchlib/transactionlog/translogclient.cpp | 2 +- .../searchlib/transactionlog/translogserver.cpp | 4 +- .../searchlib/util/posting_priority_queue.hpp | 7 +- 46 files changed, 235 insertions(+), 346 deletions(-) diff --git a/searchlib/src/apps/vespa-index-inspect/vespa-index-inspect.cpp b/searchlib/src/apps/vespa-index-inspect/vespa-index-inspect.cpp index 6278b216b52..75c49c3a003 100644 --- a/searchlib/src/apps/vespa-index-inspect/vespa-index-inspect.cpp +++ b/searchlib/src/apps/vespa-index-inspect/vespa-index-inspect.cpp @@ -151,12 +151,10 @@ FieldOptions::~FieldOptions() = default; void FieldOptions::validateFields(const Schema &schema) { - for (std::vector::const_iterator - i = _fields.begin(), ie = _fields.end(); - i != ie; ++i) { - uint32_t fieldId = schema.getIndexFieldId(*i); + for (const auto& field : _fields) { + uint32_t fieldId = schema.getIndexFieldId(field); if (fieldId == Schema::UNKNOWN_FIELD_ID) { - LOG(error, "No such field: %s", i->c_str()); + LOG(error, "No such field: %s", field.c_str()); std::_Exit(1); } _ids.push_back(fieldId); @@ -399,10 +397,8 @@ ShowPostingListSubApp::readWordList(const Schema &schema) _wmv.resize(numFields); if (!_fieldOptions.empty()) { - for (std::vector::const_iterator - i = _fieldOptions._ids.begin(), ie = _fieldOptions._ids.end(); - i != ie; ++i) { - SchemaUtil::IndexIterator index(schema, *i); + for (auto id : _fieldOptions._ids) { + SchemaUtil::IndexIterator index(schema, id); if (!readWordList(index)) return false; } @@ -462,10 +458,8 @@ ShowPostingListSubApp::showTransposedPostingList() return; std::vector entries; if (!_fieldOptions.empty()) { - for (std::vector::const_iterator - i = _fieldOptions._ids.begin(), ie = _fieldOptions._ids.end(); - i != ie; ++i) { - SchemaUtil::IndexIterator index(schema, *i); + for (auto id : _fieldOptions._ids) { + SchemaUtil::IndexIterator index(schema, id); readPostings(index, entries); } } else { @@ -481,35 +475,34 @@ ShowPostingListSubApp::showTransposedPostingList() uint32_t prevElemId = static_cast(-1); uint32_t prevElementLen = 0; int32_t prevElementWeight = 0; - for (std::vector::const_iterator - i = entries.begin(), ie = entries.end(); i != ie; ++i) { - if (i->_docId != prevDocId) { - std::cout << "docId = " << i->_docId << '\n'; - prevDocId = i->_docId; + for (const auto& entry : entries) { + if (entry._docId != prevDocId) { + std::cout << "docId = " << entry._docId << '\n'; + prevDocId = entry._docId; prevFieldId = static_cast(-1); } - if (i->_fieldId != prevFieldId) { - std::cout << " field = " << i->_fieldId << - " \"" << schema.getIndexField(i->_fieldId).getName() << + if (entry._fieldId != prevFieldId) { + std::cout << " field = " << entry._fieldId << + " \"" << schema.getIndexField(entry._fieldId).getName() << "\"\n"; - prevFieldId = i->_fieldId; + prevFieldId = entry._fieldId; prevElemId = static_cast(-1); } - if (i->_elementId != prevElemId || - i->_elementLen != prevElementLen || - i->_elementWeight != prevElementWeight) { - std::cout << " element = " << i->_elementId << - ", elementLen = " << i->_elementLen << - ", elementWeight = " << i->_elementWeight << + if (entry._elementId != prevElemId || + entry._elementLen != prevElementLen || + entry._elementWeight != prevElementWeight) { + std::cout << " element = " << entry._elementId << + ", elementLen = " << entry._elementLen << + ", elementWeight = " << entry._elementWeight << '\n'; - prevElemId = i->_elementId; - prevElementLen = i->_elementLen; - prevElementWeight = i->_elementWeight; + prevElemId = entry._elementId; + prevElementLen = entry._elementLen; + prevElementWeight = entry._elementWeight; } - assert(i->_wordNum != 0); - assert(i->_wordNum < _wordsv[i->_fieldId].size()); - std::cout << " pos = " << i->_wordPos << - ", word = \"" << _wordsv[i->_fieldId][i->_wordNum] << "\""; + assert(entry._wordNum != 0); + assert(entry._wordNum < _wordsv[entry._fieldId].size()); + std::cout << " pos = " << entry._wordPos << + ", word = \"" << _wordsv[entry._fieldId][entry._wordNum] << "\""; std::cout << '\n'; } } @@ -588,13 +581,10 @@ ShowPostingListSubApp::showPostingList() handle->second); std::vector tfmdv(numFields); TermFieldMatchDataArray tfmda; - for (std::vector::iterator - tfit = tfmdv.begin(), tfite = tfmdv.end(); - tfit != tfite; ++tfit) { - tfmda.add(&*tfit); + for (auto& tfmd : tfmdv) { + tfmda.add(&tfmd); } - std::unique_ptr sb(handle->second.createIterator( - handle->first, tfmda)); + auto sb = handle->second.createIterator(handle->first, tfmda); sb->initFullRange(); uint32_t docId = 0; bool first = true; diff --git a/searchlib/src/vespa/searchcommon/common/schema.cpp b/searchlib/src/vespa/searchcommon/common/schema.cpp index 1f2f924a4cd..7a3e15dbd6d 100644 --- a/searchlib/src/vespa/searchcommon/common/schema.cpp +++ b/searchlib/src/vespa/searchcommon/common/schema.cpp @@ -59,7 +59,7 @@ template uint32_t getFieldId(vespalib::stringref name, const T &map) { - typename T::const_iterator it = map.find(name); + auto it = map.find(name); return (it != map.end()) ? it->second : Schema::UNKNOWN_FIELD_ID; } @@ -433,13 +433,12 @@ struct IntersectHelper { void intersect(const std::vector &set1, const std::vector &set2, const Map &set2_map, std::vector &intersection, Map &intersection_map) { - for (typename std::vector::const_iterator - it = set1.begin(); it != set1.end(); ++it) { - typename Map::const_iterator it2 = set2_map.find(it->getName()); + for (const auto& elem : set1) { + auto it2 = set2_map.find(elem.getName()); if (it2 != set2_map.end()) { - if (is_matching(*it, set2[it2->second])) { - intersection_map[it->getName()] = intersection.size(); - intersection.push_back(*it); + if (is_matching(elem, set2[it2->second])) { + intersection_map[elem.getName()] = intersection.size(); + intersection.push_back(elem); } } } diff --git a/searchlib/src/vespa/searchlib/aggregation/group.cpp b/searchlib/src/vespa/searchlib/aggregation/group.cpp index 5a16756f0d7..60afcc96ef5 100644 --- a/searchlib/src/vespa/searchlib/aggregation/group.cpp +++ b/searchlib/src/vespa/searchlib/aggregation/group.cpp @@ -98,7 +98,7 @@ Group::Value::groupSingle(const ResultNode & selectResult, HitRank rank, const G } GroupHash & childMap = *_childInfo._childMap; Group * group(nullptr); - GroupHash::iterator found = childMap.find(selectResult); + auto found = childMap.find(selectResult); if (found == childMap.end()) { // group not present in child map if (level.allowMoreGroups(childMap.size())) { group = new Group(level.getGroupPrototype()); diff --git a/searchlib/src/vespa/searchlib/aggregation/grouping.cpp b/searchlib/src/vespa/searchlib/aggregation/grouping.cpp index e9df10d3a61..96cfb29a693 100644 --- a/searchlib/src/vespa/searchlib/aggregation/grouping.cpp +++ b/searchlib/src/vespa/searchlib/aggregation/grouping.cpp @@ -309,7 +309,7 @@ bool Grouping::needResort() const { bool resort(_root.needResort()); - for (GroupingLevelList::const_iterator it(_levels.begin()), mt(_levels.end()); !resort && (it != mt); ++it) { + for (auto it(_levels.begin()), mt(_levels.end()); !resort && (it != mt); ++it) { resort = it->needResort(); } return (resort && getTopN() <= 0); diff --git a/searchlib/src/vespa/searchlib/attribute/attribute_weighted_set_blueprint.cpp b/searchlib/src/vespa/searchlib/attribute/attribute_weighted_set_blueprint.cpp index c467590fe69..2fac2350735 100644 --- a/searchlib/src/vespa/searchlib/attribute/attribute_weighted_set_blueprint.cpp +++ b/searchlib/src/vespa/searchlib/attribute/attribute_weighted_set_blueprint.cpp @@ -99,12 +99,12 @@ public: } } void and_hits_into(BitVector & result,uint32_t begin_id) override { - typename Map::iterator end = _map.end(); + auto end = _map.end(); result.foreach_truebit([&, end](uint32_t key) { if ( _map.find(_attr.getToken(key)) == end) { result.clearBit(key); }}, begin_id); } void doSeek(uint32_t docId) override { - typename Map::const_iterator pos = _map.find(_attr.getToken(docId)); + auto pos = _map.find(_attr.getToken(docId)); if (pos != _map.end()) { _weight = pos->second; setDocId(docId); diff --git a/searchlib/src/vespa/searchlib/attribute/attributecontext.cpp b/searchlib/src/vespa/searchlib/attribute/attributecontext.cpp index 97a7dc8bcb1..443fc8369d3 100644 --- a/searchlib/src/vespa/searchlib/attribute/attributecontext.cpp +++ b/searchlib/src/vespa/searchlib/attribute/attributecontext.cpp @@ -12,7 +12,7 @@ namespace search { const IAttributeVector * AttributeContext::getAttribute(AttributeMap & map, const string & name, bool stableEnum) const { - AttributeMap::const_iterator itr = map.find(name); + auto itr = map.find(name); if (itr != map.end()) { if (itr->second) { return itr->second->attribute(); diff --git a/searchlib/src/vespa/searchlib/attribute/attributemanager.cpp b/searchlib/src/vespa/searchlib/attribute/attributemanager.cpp index 8c1b453c354..c85d77ff70a 100644 --- a/searchlib/src/vespa/searchlib/attribute/attributemanager.cpp +++ b/searchlib/src/vespa/searchlib/attribute/attributemanager.cpp @@ -33,7 +33,7 @@ waitBaseDir(const string &baseDir) std::unique_lock guard(baseDirLock); bool waited = false; - BaseDirSet::iterator it = baseDirSet.find(baseDir); + auto it = baseDirSet.find(baseDir); while (it != baseDirSet.end()) { if (!waited) { waited = true; @@ -57,7 +57,7 @@ dropBaseDir(const string &baseDir) return; std::lock_guard guard(baseDirLock); - BaseDirSet::iterator it = baseDirSet.find(baseDir); + auto it = baseDirSet.find(baseDir); if (it == baseDirSet.end()) { LOG(error, "AttributeManager: Cannot drop basedir %s, already dropped", baseDir.c_str()); } else { @@ -114,8 +114,8 @@ AttributeManager::~AttributeManager() uint64_t AttributeManager::getMemoryFootprint() const { uint64_t sum(0); - for(AttributeMap::const_iterator it(_attributes.begin()), mt(_attributes.end()); it != mt; it++) { - sum += it->second->getStatus().getAllocated(); + for (const auto& elem : _attributes) { + sum += elem.second->getStatus().getAllocated(); } return sum; @@ -125,7 +125,7 @@ const AttributeManager::VectorHolder * AttributeManager::findAndLoadAttribute(const string & name) const { const VectorHolder * loadedVector(nullptr); - AttributeMap::const_iterator found = _attributes.find(name); + auto found = _attributes.find(name); if (found != _attributes.end()) { AttributeVector & vec = *found->second; if ( ! vec.isLoaded() ) { @@ -173,7 +173,7 @@ bool AttributeManager::add(const AttributeManager::VectorHolder & vector) { bool retval(true); - AttributeMap::iterator found = _attributes.find(vector->getName()); + auto found = _attributes.find(vector->getName()); if (found == _attributes.end()) { vector->setInterlock(_interlock); _attributes[vector->getName()] = vector; @@ -186,8 +186,8 @@ void AttributeManager::getAttributeList(AttributeList & list) const { list.reserve(_attributes.size()); - for(AttributeMap::const_iterator it(_attributes.begin()), mt(_attributes.end()); it != mt; it++) { - list.push_back(AttributeGuard(it->second)); + for (const auto& elem : _attributes) { + list.push_back(AttributeGuard(elem.second)); } } @@ -224,7 +224,7 @@ AttributeManager::addVector(const string & name, const Config & config) LOG(error, "Attribute Vector '%s' has type conflict", name.c_str()); } } else { - AttributeMap::iterator found = _attributes.find(name); + auto found = _attributes.find(name); if (found != _attributes.end()) { const VectorHolder & vh(found->second); if ( vh.get() && diff --git a/searchlib/src/vespa/searchlib/attribute/posting_list_merger.cpp b/searchlib/src/vespa/searchlib/attribute/posting_list_merger.cpp index 4aa9ad01f2c..62eaf05a2e3 100644 --- a/searchlib/src/vespa/searchlib/attribute/posting_list_merger.cpp +++ b/searchlib/src/vespa/searchlib/attribute/posting_list_merger.cpp @@ -64,7 +64,7 @@ PostingListMerger::merge(PostingVector &v, PostingVector &temp, const Sta size_t aEnd = startPos[i * 2 + 1]; size_t bStart = aEnd; size_t bEnd = startPos[i * 2 + 2]; - typename PostingVector::const_iterator it = v.begin(); + auto it = v.begin(); std::merge(it + aStart, it + aEnd, it + bStart, it + bEnd, temp.begin() + aStart); diff --git a/searchlib/src/vespa/searchlib/attribute/postingchange.cpp b/searchlib/src/vespa/searchlib/attribute/postingchange.cpp index a49a17470d7..dca79f045a0 100644 --- a/searchlib/src/vespa/searchlib/attribute/postingchange.cpp +++ b/searchlib/src/vespa/searchlib/attribute/postingchange.cpp @@ -25,15 +25,14 @@ struct CompareValue { void removeDupAdditions(PostingChange::A &additions) { - using Iterator = PostingChange::A::iterator; if (additions.empty()) return; if (additions.size() == 1) return; std::sort(additions.begin(), additions.end()); - Iterator i = additions.begin(); - Iterator ie = additions.end(); - Iterator d = i; + auto i = additions.begin(); + auto ie = additions.end(); + auto d = i; for (++i; i != ie; ++i, ++d) { if (d->_key == i->_key) break; @@ -53,15 +52,14 @@ removeDupAdditions(PostingChange::A &additions) void removeDupAdditions(PostingChange::A &additions) { - using Iterator = PostingChange::A::iterator; if (additions.empty()) return; if (additions.size() == 1u) return; std::sort(additions.begin(), additions.end()); - Iterator i = additions.begin(); - Iterator ie = additions.end(); - Iterator d = i; + auto i = additions.begin(); + auto ie = additions.end(); + auto d = i; for (++i; i != ie; ++i, ++d) { if (d->_key == i->_key) break; @@ -85,15 +83,14 @@ removeDupAdditions(PostingChange::A &additions) void removeDupRemovals(std::vector &removals) { - using Iterator = std::vector::iterator; if (removals.empty()) return; if (removals.size() == 1u) return; std::sort(removals.begin(), removals.end()); - Iterator i = removals.begin(); - Iterator ie = removals.end(); - Iterator d = i; + auto i = removals.begin(); + auto ie = removals.end(); + auto d = i; for (++i; i != ie; ++i, ++d) { if (*d == *i) break; diff --git a/searchlib/src/vespa/searchlib/bitcompression/pagedict4.cpp b/searchlib/src/vespa/searchlib/bitcompression/pagedict4.cpp index 835aaadc559..444c935b6f8 100644 --- a/searchlib/src/vespa/searchlib/bitcompression/pagedict4.cpp +++ b/searchlib/src/vespa/searchlib/bitcompression/pagedict4.cpp @@ -1184,8 +1184,7 @@ lookupOverflow(uint64_t wordNum) const assert(!_overflows.empty()); - OverflowVector::const_iterator lb = - std::lower_bound(_overflows.begin(), _overflows.end(), wordNum); + auto lb = std::lower_bound(_overflows.begin(), _overflows.end(), wordNum); assert(lb != _overflows.end()); assert(lb->_wordNum == wordNum); diff --git a/searchlib/src/vespa/searchlib/common/bitvectorcache.cpp b/searchlib/src/vespa/searchlib/common/bitvectorcache.cpp index ea7fd5ee76c..022bc789e38 100644 --- a/searchlib/src/vespa/searchlib/common/bitvectorcache.cpp +++ b/searchlib/src/vespa/searchlib/common/bitvectorcache.cpp @@ -32,9 +32,9 @@ BitVectorCache::computeCountVector(KeySet & keys, CountVector & v) const { std::shared_lock guard(_mutex); keySets.resize(_chunks.size()); - Key2Index::const_iterator end(_keys.end()); + auto end = _keys.end(); for (Key k : keys) { - Key2Index::const_iterator found = _keys.find(k); + auto found = _keys.find(k); if (found != end) { const KeyMeta & m = found->second; keySets[m.chunkId()].insert(m.chunkIndex()); diff --git a/searchlib/src/vespa/searchlib/diskindex/bitvectordictionary.cpp b/searchlib/src/vespa/searchlib/diskindex/bitvectordictionary.cpp index f6dd5a318ae..efdbedd0941 100644 --- a/searchlib/src/vespa/searchlib/diskindex/bitvectordictionary.cpp +++ b/searchlib/src/vespa/searchlib/diskindex/bitvectordictionary.cpp @@ -86,8 +86,7 @@ BitVectorDictionary::lookup(uint64_t wordNum) { WordSingleKey key; key._wordNum = wordNum; - std::vector::const_iterator itr = - std::lower_bound(_entries.begin(), _entries.end(), key); + auto itr = std::lower_bound(_entries.begin(), _entries.end(), key); if (itr == _entries.end() || key < *itr) { return BitVector::UP(); } diff --git a/searchlib/src/vespa/searchlib/diskindex/diskindex.cpp b/searchlib/src/vespa/searchlib/diskindex/diskindex.cpp index 90bcaabc7a5..b1757c0e831 100644 --- a/searchlib/src/vespa/searchlib/diskindex/diskindex.cpp +++ b/searchlib/src/vespa/searchlib/diskindex/diskindex.cpp @@ -342,7 +342,7 @@ public: } const DiskIndex::LookupResult & lookup(const vespalib::string & word, uint32_t fieldId) { - Cache::const_iterator it = _cache.find(word); + auto it = _cache.find(word); if (it == _cache.end()) { _cache[word] = _diskIndex.lookup(_fieldIds, word); it = _cache.find(word); diff --git a/searchlib/src/vespa/searchlib/diskindex/fieldreader.cpp b/searchlib/src/vespa/searchlib/diskindex/fieldreader.cpp index d01030ee975..20a5a76905f 100644 --- a/searchlib/src/vespa/searchlib/diskindex/fieldreader.cpp +++ b/searchlib/src/vespa/searchlib/diskindex/fieldreader.cpp @@ -317,8 +317,6 @@ FieldReaderStripInfo::scan_element_lengths(uint32_t scan_chunk) void FieldReaderStripInfo::read() { - using Element = search::index::WordDocElementFeatures; - for (;;) { FieldReader::read(); DocIdAndFeatures &features = _docIdAndFeatures; @@ -328,8 +326,7 @@ FieldReaderStripInfo::read() assert(!features.has_raw_data()); uint32_t numElements = features.elements().size(); assert(numElements > 0); - std::vector::iterator element = - features.elements().begin(); + auto element = features.elements().begin(); if (_hasElements) { if (!_hasElementWeights) { for (uint32_t elementDone = 0; elementDone < numElements; ++elementDone, ++element) { diff --git a/searchlib/src/vespa/searchlib/diskindex/zc4_posting_writer.cpp b/searchlib/src/vespa/searchlib/diskindex/zc4_posting_writer.cpp index 3a1b7928c93..07d31e16f66 100644 --- a/searchlib/src/vespa/searchlib/diskindex/zc4_posting_writer.cpp +++ b/searchlib/src/vespa/searchlib/diskindex/zc4_posting_writer.cpp @@ -179,19 +179,16 @@ Zc4PostingWriter::flush_word_no_skip() const uint64_t *features = _featureWriteContext.getComprBuf(); uint64_t featureOffset = 0; - std::vector::const_iterator dit = _docIds.begin(); - std::vector::const_iterator dite = _docIds.end(); - - for (; dit != dite; ++dit) { - uint32_t docId = dit->_doc_id; - uint32_t featureSize = dit->_features_size; + for (const auto& elem : _docIds) { + uint32_t docId = elem._doc_id; + uint32_t featureSize = elem._features_size; e.encodeExpGolomb(docId - baseDocId, docIdK); baseDocId = docId + 1; if (_encode_interleaved_features) { - assert(dit->_field_length > 0); - e.encodeExpGolomb(dit->_field_length - 1, K_VALUE_ZCPOSTING_FIELD_LENGTH); - assert(dit->_num_occs > 0); - e.encodeExpGolomb(dit->_num_occs - 1, K_VALUE_ZCPOSTING_NUM_OCCS); + assert(elem._field_length > 0); + e.encodeExpGolomb(elem._field_length - 1, K_VALUE_ZCPOSTING_FIELD_LENGTH); + assert(elem._num_occs > 0); + e.encodeExpGolomb(elem._num_occs - 1, K_VALUE_ZCPOSTING_NUM_OCCS); } if (featureSize != 0) { e.writeBits(features + (featureOffset >> 6), diff --git a/searchlib/src/vespa/searchlib/docstore/chunk.cpp b/searchlib/src/vespa/searchlib/docstore/chunk.cpp index 35166cf8d78..60255af3521 100644 --- a/searchlib/src/vespa/searchlib/docstore/chunk.cpp +++ b/searchlib/src/vespa/searchlib/docstore/chunk.cpp @@ -102,17 +102,17 @@ vespalib::ConstBufferRef Chunk::getLid(uint32_t lid) const { vespalib::ConstBufferRef buf; - for (LidList::const_iterator it(_lids.begin()), mt(_lids.end()); it != mt; it++) { - if (it->getLid() == lid) { + for (const auto& elem : _lids) { + if (elem.getLid() == lid) { #if 1 uint32_t bLid(0), bLen(0); - vespalib::nbostream is(getData().data() + it->getOffset(), it->size()); + vespalib::nbostream is(getData().data() + elem.getOffset(), elem.size()); is >> bLid >> bLen; assert(bLid == lid); - assert(bLen == it->netSize()); - assert((bLen + 2*sizeof(uint32_t)) == it->size()); + assert(bLen == elem.netSize()); + assert((bLen + 2*sizeof(uint32_t)) == elem.size()); #endif - buf = vespalib::ConstBufferRef(getData().data() + it->getNetOffset(), it->netSize()); + buf = vespalib::ConstBufferRef(getData().data() + elem.getNetOffset(), elem.netSize()); } } return buf; diff --git a/searchlib/src/vespa/searchlib/docstore/logdatastore.cpp b/searchlib/src/vespa/searchlib/docstore/logdatastore.cpp index bde7492f485..7f63cb4c2d4 100644 --- a/searchlib/src/vespa/searchlib/docstore/logdatastore.cpp +++ b/searchlib/src/vespa/searchlib/docstore/logdatastore.cpp @@ -777,8 +777,7 @@ LogDataStore::preload() if (!partList.empty()) { verifyModificationTime(partList); partList = scanDir(getBaseDir(), ".idx"); - using It = NameIdSet::const_iterator; - for (It it(partList.begin()), mt(--partList.end()); it != mt; it++) { + for (auto it(partList.begin()), mt(--partList.end()); it != mt; it++) { _fileChunks.push_back(createReadOnlyFile(FileId(_fileChunks.size()), *it)); } _fileChunks.push_back(isReadOnly() @@ -824,7 +823,7 @@ LogDataStore::NameIdSet LogDataStore::findIncompleteCompactedFiles(const NameIdSet & partList) { NameIdSet incomplete; if ( !partList.empty()) { - NameIdSet::const_iterator it = partList.begin(); + auto it = partList.begin(); for (FileChunk::NameId prev = *it++; it != partList.end(); it++) { if (prev.next() == *it) { if (!incomplete.empty() && (*incomplete.rbegin() == prev)) { @@ -869,15 +868,13 @@ LogDataStore::eraseIncompleteCompactedFiles(NameIdSet partList) void LogDataStore::eraseDanglingDatFiles(const NameIdSet &partList, const NameIdSet &datPartList) { - using IT = NameIdSet::const_iterator; - - IT iib(partList.begin()); - IT ii(iib); - IT iie(partList.end()); - IT dib(datPartList.begin()); - IT di(dib); - IT die(datPartList.end()); - IT dirb(die); + auto iib = partList.begin(); + auto ii = iib; + auto iie = partList.end(); + auto dib = datPartList.begin(); + auto di = dib; + auto die = datPartList.end(); + auto dirb = die; NameId endMarker(NameId::last()); if (dirb != dib) { diff --git a/searchlib/src/vespa/searchlib/engine/propertiesmap.cpp b/searchlib/src/vespa/searchlib/engine/propertiesmap.cpp index 5989f952f17..48c95ba92b9 100644 --- a/searchlib/src/vespa/searchlib/engine/propertiesmap.cpp +++ b/searchlib/src/vespa/searchlib/engine/propertiesmap.cpp @@ -26,7 +26,7 @@ PropertiesMap::lookupCreate(vespalib::stringref name) const fef::Properties & PropertiesMap::lookup(vespalib::stringref name) const { - PropsMap::const_iterator pos = _propertiesMap.find(name); + auto pos = _propertiesMap.find(name); if (pos == _propertiesMap.end()) { return _emptyProperties; } diff --git a/searchlib/src/vespa/searchlib/expression/documentfieldnode.cpp b/searchlib/src/vespa/searchlib/expression/documentfieldnode.cpp index 16f5ee04be4..254d9d030af 100644 --- a/searchlib/src/vespa/searchlib/expression/documentfieldnode.cpp +++ b/searchlib/src/vespa/searchlib/expression/documentfieldnode.cpp @@ -115,7 +115,7 @@ DocumentFieldNode::onPrepare(bool preserveAccurateTypes) if ( !_fieldPath.empty() ) { bool nestedMultiValue(false); - for(document::FieldPath::const_iterator it(_fieldPath.begin()), mt(_fieldPath.end()); !nestedMultiValue && (it != mt); it++) { + for (auto it(_fieldPath.begin()), mt(_fieldPath.end()); !nestedMultiValue && (it != mt); it++) { const FieldPathEntry & fpe = **it; if (fpe.getType() == document::FieldPathEntry::STRUCT_FIELD) { const FieldValue & fv = fpe.getFieldValueToSet(); diff --git a/searchlib/src/vespa/searchlib/expression/resultvector.h b/searchlib/src/vespa/searchlib/expression/resultvector.h index 22fac0b214b..0c71f2f79e6 100644 --- a/searchlib/src/vespa/searchlib/expression/resultvector.h +++ b/searchlib/src/vespa/searchlib/expression/resultvector.h @@ -174,8 +174,8 @@ size_t ResultNodeVectorT::hash() const { size_t h(0); - for(typename Vector::const_iterator it(_result.begin()), mt(_result.end()); it != mt; it++) { - h ^= it->hash(); + for(const auto& elem : _result) { + h ^= elem.hash(); } return h; } @@ -184,8 +184,8 @@ template void ResultNodeVectorT::negate() { - for(typename Vector::iterator it(_result.begin()), mt(_result.end()); it != mt; it++) { - it->negate(); + for (auto& elem : _result) { + elem.negate(); } } @@ -194,7 +194,7 @@ const ResultNode * ResultNodeVectorT::find(const ResultNode & key) const { G getter; - typename Vector::const_iterator found = std::lower_bound(_result.begin(), _result.end(), getter(key), typename C::less() ); + auto found = std::lower_bound(_result.begin(), _result.end(), getter(key), typename C::less() ); if (found != _result.end()) { typename C::equal equal; return equal(*found, getter(key)) ? &(*found) : nullptr; diff --git a/searchlib/src/vespa/searchlib/features/fieldlengthfeature.cpp b/searchlib/src/vespa/searchlib/features/fieldlengthfeature.cpp index 55daf6ed5ff..91aca0a19fe 100644 --- a/searchlib/src/vespa/searchlib/features/fieldlengthfeature.cpp +++ b/searchlib/src/vespa/searchlib/features/fieldlengthfeature.cpp @@ -33,11 +33,8 @@ FieldLengthExecutor::execute(uint32_t docId) { uint32_t val = 0; bool validVal = false; - for (std::vector::const_iterator - hi = _fieldHandles.begin(), hie = _fieldHandles.end(); - hi != hie; ++hi) - { - const TermFieldMatchData &tfmd = *_md->resolveTermField(*hi); + for (auto handle : _fieldHandles) { + const TermFieldMatchData &tfmd = *_md->resolveTermField(handle); if (tfmd.getDocId() == docId) { FieldPositionsIterator it = tfmd.getIterator(); if (it.valid()) { diff --git a/searchlib/src/vespa/searchlib/features/flow_completeness_feature.cpp b/searchlib/src/vespa/searchlib/features/flow_completeness_feature.cpp index 166280b289d..bd5d5ca952b 100644 --- a/searchlib/src/vespa/searchlib/features/flow_completeness_feature.cpp +++ b/searchlib/src/vespa/searchlib/features/flow_completeness_feature.cpp @@ -103,7 +103,7 @@ struct State { Path nextP = firstP; uint32_t pos = edges[j]; nextP.path.push_back(pos); - TermIdxMap::const_iterator it = matchedTermForPos.find(pos); + auto it = matchedTermForPos.find(pos); if (it == matchedTermForPos.end()) { return nextP; } else { @@ -158,7 +158,7 @@ struct State { uint32_t pos = positionsForTerm[tix][0]; assert(pos < posLimit); - TermIdxMap::const_iterator it = matchedTermForPos.find(pos); + auto it = matchedTermForPos.find(pos); if (it == matchedTermForPos.end()) { ++found; matchedTermForPos[pos] = tix; diff --git a/searchlib/src/vespa/searchlib/features/querycompletenessfeature.cpp b/searchlib/src/vespa/searchlib/features/querycompletenessfeature.cpp index 5caa2bd577e..d2948ad3185 100644 --- a/searchlib/src/vespa/searchlib/features/querycompletenessfeature.cpp +++ b/searchlib/src/vespa/searchlib/features/querycompletenessfeature.cpp @@ -38,10 +38,8 @@ void QueryCompletenessExecutor::execute(uint32_t docId) { uint32_t hit = 0, miss = 0; - for (std::vector::iterator it = _fieldHandles.begin(); - it != _fieldHandles.end(); ++it) - { - const fef::TermFieldMatchData &tfmd = *_md->resolveTermField(*it); + for (const auto& handle : _fieldHandles) { + const fef::TermFieldMatchData &tfmd = *_md->resolveTermField(handle); if (tfmd.getDocId() == docId) { search::fef::FieldPositionsIterator field = tfmd.getIterator(); while (field.valid() && field.getPosition() < _config.fieldBegin) { diff --git a/searchlib/src/vespa/searchlib/fef/blueprintfactory.cpp b/searchlib/src/vespa/searchlib/fef/blueprintfactory.cpp index af7c83cdc9a..dcb1227d6b5 100644 --- a/searchlib/src/vespa/searchlib/fef/blueprintfactory.cpp +++ b/searchlib/src/vespa/searchlib/fef/blueprintfactory.cpp @@ -35,7 +35,7 @@ BlueprintFactory::visitDumpFeatures(const IIndexEnvironment &indexEnv, Blueprint::SP BlueprintFactory::createBlueprint(const vespalib::string &name) const { - BlueprintMap::const_iterator itr = _blueprintMap.find(name); + auto itr = _blueprintMap.find(name); if (itr == _blueprintMap.end()) { return {}; } diff --git a/searchlib/src/vespa/searchlib/fef/objectstore.cpp b/searchlib/src/vespa/searchlib/fef/objectstore.cpp index 4cf185ad55e..c7ef7aa0316 100644 --- a/searchlib/src/vespa/searchlib/fef/objectstore.cpp +++ b/searchlib/src/vespa/searchlib/fef/objectstore.cpp @@ -20,7 +20,7 @@ ObjectStore::~ObjectStore() void ObjectStore::add(const vespalib::string & key, Anything::UP value) { - ObjectMap::iterator found = _objectMap.find(key); + auto found = _objectMap.find(key); if (found != _objectMap.end()) { delete found->second; found->second = NULL; @@ -31,7 +31,7 @@ ObjectStore::add(const vespalib::string & key, Anything::UP value) const Anything * ObjectStore::get(const vespalib::string & key) const { - ObjectMap::const_iterator found = _objectMap.find(key); + auto found = _objectMap.find(key); return (found != _objectMap.end()) ? found->second : NULL; } diff --git a/searchlib/src/vespa/searchlib/fef/properties.cpp b/searchlib/src/vespa/searchlib/fef/properties.cpp index 70cfe802ad2..2cc4e50b593 100644 --- a/searchlib/src/vespa/searchlib/fef/properties.cpp +++ b/searchlib/src/vespa/searchlib/fef/properties.cpp @@ -62,7 +62,7 @@ uint32_t Properties::count(vespalib::stringref key) const noexcept { if (!key.empty()) { - Map::const_iterator node = _data.find(key); + auto node = _data.find(key); if (node != _data.end()) { return node->second.size(); } @@ -74,7 +74,7 @@ Properties & Properties::remove(vespalib::stringref key) { if (!key.empty()) { - Map::iterator node = _data.find(key); + auto node = _data.find(key); if (node != _data.end()) { _numValues -= node->second.size(); _data.erase(node); @@ -86,15 +86,13 @@ Properties::remove(vespalib::stringref key) Properties & Properties::import(const Properties &src) { - Map::const_iterator itr = src._data.begin(); - Map::const_iterator end = src._data.end(); - for (; itr != end; ++itr) { - Map::insert_result res = _data.insert(Map::value_type(itr->first, itr->second)); + for (const auto& elem : src._data) { + Map::insert_result res = _data.insert(Map::value_type(elem.first, elem.second)); if ( ! res.second) { _numValues -= res.first->second.size(); - res.first->second = itr->second; + res.first->second = elem.second; } - _numValues += itr->second.size(); + _numValues += elem.second.size(); } return *this; } @@ -124,16 +122,12 @@ uint32_t Properties::hashCode() const noexcept { uint32_t hash = numKeys() + numValues(); - Map::const_iterator itr = _data.begin(); - Map::const_iterator end = _data.end(); - for (; itr != end; ++itr) { - const Key &key = itr->first; - const Value &value = itr->second; - Value::const_iterator v_itr = value.begin(); - Value::const_iterator v_end = value.end(); + for (const auto& elem : _data) { + const Key &key = elem.first; + const Value &value = elem.second; hash += rawHash(key.data(), key.size()); - for (; v_itr != v_end; ++v_itr) { - hash += rawHash(v_itr->data(), v_itr->size()); + for (const auto& velem : value) { + hash += rawHash(velem.data(), velem.size()); } } return hash; @@ -142,10 +136,8 @@ Properties::hashCode() const noexcept void Properties::visitProperties(IPropertiesVisitor &visitor) const { - Map::const_iterator itr = _data.begin(); - Map::const_iterator end = _data.end(); - for (; itr != end; ++itr) { - visitor.visitProperty(itr->first, Property(itr->second)); + for (const auto& elem : _data) { + visitor.visitProperty(elem.first, Property(elem.second)); } } @@ -155,15 +147,13 @@ Properties::visitNamespace(vespalib::stringref ns, { vespalib::string tmp; vespalib::string prefix = ns + "."; - Map::const_iterator itr = _data.begin(); - Map::const_iterator end = _data.end(); - for (; itr != end; ++itr) { - if ((itr->first.find(prefix) == 0) && - (itr->first.size() > prefix.size())) + for (const auto& elem : _data) { + if ((elem.first.find(prefix) == 0) && + (elem.first.size() > prefix.size())) { - tmp = vespalib::stringref(itr->first.data() + prefix.size(), - itr->first.size() - prefix.size()); - visitor.visitProperty(tmp, Property(itr->second)); + tmp = vespalib::stringref(elem.first.data() + prefix.size(), + elem.first.size() - prefix.size()); + visitor.visitProperty(tmp, Property(elem.second)); } } } @@ -174,7 +164,7 @@ Properties::lookup(vespalib::stringref key) const noexcept if (key.empty()) { return Property(); } - Map::const_iterator node = _data.find(key); + auto node = _data.find(key); if (node == _data.end()) { return Property(); } diff --git a/searchlib/src/vespa/searchlib/fef/tablemanager.cpp b/searchlib/src/vespa/searchlib/fef/tablemanager.cpp index 6169e712c37..59bc0b5f600 100644 --- a/searchlib/src/vespa/searchlib/fef/tablemanager.cpp +++ b/searchlib/src/vespa/searchlib/fef/tablemanager.cpp @@ -12,7 +12,7 @@ const Table * TableManager::getTable(const vespalib::string & name) const { std::lock_guard guard(_lock); - TableCache::const_iterator itr = _cache.find(name); + auto itr = _cache.find(name); if (itr != _cache.end()) { return itr->second.get(); } diff --git a/searchlib/src/vespa/searchlib/fef/test/matchdatabuilder.cpp b/searchlib/src/vespa/searchlib/fef/test/matchdatabuilder.cpp index 4709c17408a..beebc8b78a0 100644 --- a/searchlib/src/vespa/searchlib/fef/test/matchdatabuilder.cpp +++ b/searchlib/src/vespa/searchlib/fef/test/matchdatabuilder.cpp @@ -114,15 +114,11 @@ bool MatchDataBuilder::apply(uint32_t docId) { // For each term, do - for (TermMap::const_iterator term_iter = _match.begin(); - term_iter != _match.end(); ++term_iter) - { - uint32_t termId = term_iter->first; - - for (FieldPositions::const_iterator field_iter = term_iter->second.begin(); - field_iter != term_iter->second.end(); ++field_iter) - { - uint32_t fieldId = field_iter->first; + for (const auto& term_elem : _match) { + uint32_t termId = term_elem.first; + + for (const auto& field_elem : term_elem.second) { + uint32_t fieldId = field_elem.first; TermFieldMatchData *match = getTermFieldMatchData(termId, fieldId); // Make sure there is a corresponding term field match data object. @@ -134,7 +130,7 @@ MatchDataBuilder::apply(uint32_t docId) // find field data MyField field; - IndexData::const_iterator idxItr = _index.find(fieldId); + auto idxItr = _index.find(fieldId); if (idxItr != _index.end()) { field = idxItr->second; } @@ -144,11 +140,8 @@ MatchDataBuilder::apply(uint32_t docId) vespalib::string name = info != nullptr ? info->name() : vespalib::make_string("%d", fieldId).c_str(); // For each occurence of that term, in that field, do - for (Positions::const_iterator occ_iter = field_iter->second.begin(); - occ_iter != field_iter->second.end(); occ_iter++) - { + for (const auto& occ : field_elem.second) { // Append a term match position to the term match data. - Position occ = *occ_iter; match->appendPosition(TermFieldMatchDataPosition( occ.eid, occ.pos, diff --git a/searchlib/src/vespa/searchlib/fef/test/rankresult.cpp b/searchlib/src/vespa/searchlib/fef/test/rankresult.cpp index 4de4c56e3ac..3ac7b857173 100644 --- a/searchlib/src/vespa/searchlib/fef/test/rankresult.cpp +++ b/searchlib/src/vespa/searchlib/fef/test/rankresult.cpp @@ -25,7 +25,7 @@ RankResult::addScore(const vespalib::string & featureName, feature_t score) feature_t RankResult::getScore(const vespalib::string & featureName) const { - RankScores::const_iterator itr = _rankScores.find(featureName); + auto itr = _rankScores.find(featureName); if (itr != _rankScores.end()) { return itr->second; } @@ -43,19 +43,18 @@ RankResult::includes(const RankResult & rhs) const { double epsilon = std::max(_epsilon, rhs._epsilon); - RankScores::const_iterator findItr; - for (RankScores::const_iterator itr = rhs._rankScores.begin(); itr != rhs._rankScores.end(); ++itr) { - findItr = _rankScores.find(itr->first); + for (const auto& score : rhs._rankScores) { + auto findItr = _rankScores.find(score.first); if (findItr == _rankScores.end()) { - LOG(info, "Did not find expected feature '%s' in this rank result", itr->first.c_str()); + LOG(info, "Did not find expected feature '%s' in this rank result", score.first.c_str()); return false; } - if (itr->second < findItr->second - epsilon || - itr->second > findItr->second + epsilon || - (std::isnan(findItr->second) && !std::isnan(itr->second))) + if (score.second < findItr->second - epsilon || + score.second > findItr->second + epsilon || + (std::isnan(findItr->second) && !std::isnan(score.second))) { - LOG(info, "Feature '%s' did not have expected score.", itr->first.c_str()); - LOG(info, "Expected: %f ~ %f", itr->second, epsilon); + LOG(info, "Feature '%s' did not have expected score.", score.first.c_str()); + LOG(info, "Expected: %f ~ %f", score.second, epsilon); LOG(info, "Actual : %f", findItr->second); return false; } @@ -73,8 +72,8 @@ RankResult::clear() std::vector & RankResult::getKeys(std::vector &ret) { - for (RankScores::const_iterator it = _rankScores.begin(); it != _rankScores.end(); ++it) { - ret.push_back(it->first); + for (const auto& score : _rankScores) { + ret.push_back(score.first); } return ret; } @@ -99,8 +98,8 @@ RankResult::getEpsilon() const { std::ostream & operator<<(std::ostream & os, const RankResult & rhs) { os << "["; - for (RankResult::RankScores::const_iterator itr = rhs._rankScores.begin(); itr != rhs._rankScores.end(); ++itr) { - os << "['" << itr->first << "' = " << itr->second << "]"; + for (const auto& score : rhs._rankScores) { + os << "['" << score.first << "' = " << score.second << "]"; } return os << "]"; } diff --git a/searchlib/src/vespa/searchlib/grouping/collect.h b/searchlib/src/vespa/searchlib/grouping/collect.h index 34906e90324..198daed2e18 100644 --- a/searchlib/src/vespa/searchlib/grouping/collect.h +++ b/searchlib/src/vespa/searchlib/grouping/collect.h @@ -23,7 +23,7 @@ protected: int diff(0); size_t aOff(getAggrBase(a)); size_t bOff(getAggrBase(b)); - for(std::vector::const_iterator it(_sortInfo.begin()), mt(_sortInfo.end()); (diff == 0) && (it != mt); it++) { + for (auto it(_sortInfo.begin()), mt(_sortInfo.end()); (diff == 0) && (it != mt); it++) { diff = _aggregator[it->getIndex()].cmp(&_aggrBacking[aOff], &_aggrBacking[bOff]) * it->getSign(); } return diff; diff --git a/searchlib/src/vespa/searchlib/grouping/groupengine.cpp b/searchlib/src/vespa/searchlib/grouping/groupengine.cpp index 853548b47f7..5039082434b 100644 --- a/searchlib/src/vespa/searchlib/grouping/groupengine.cpp +++ b/searchlib/src/vespa/searchlib/grouping/groupengine.cpp @@ -50,7 +50,7 @@ GroupRef GroupEngine::group(Children & children, uint32_t docId, double rank) throw std::runtime_error("Does not know how to handle failed select statements"); } const ResultNode &selectResult = *selector.getResult(); - Children::iterator found = children.find(selectResult); + auto found = children.find(selectResult); GroupRef gr; if (found == children.end()) { if (_request->allowMoreGroups(children.size())) { @@ -158,8 +158,8 @@ Group::UP GroupEngine::getGroup(GroupRef ref) const std::vector v(ch.size()); { size_t i(0); - for (Children::const_iterator it(ch.begin()), mt(ch.end()); it != mt; it++) { - v[i++] = *it; + for (const auto& elem : ch) { + v[i++] = elem; } } uint64_t maxN(_nextEngine->_request->getPrecision()); diff --git a/searchlib/src/vespa/searchlib/index/postinglistparams.cpp b/searchlib/src/vespa/searchlib/index/postinglistparams.cpp index 6275399c498..27f2d60d420 100644 --- a/searchlib/src/vespa/searchlib/index/postinglistparams.cpp +++ b/searchlib/src/vespa/searchlib/index/postinglistparams.cpp @@ -14,9 +14,7 @@ namespace search::index { bool PostingListParams::isSet(const vespalib::string &key) const { - Map::const_iterator it; - - it = _map.find(key); + auto it = _map.find(key); if (it != _map.end()) { return true; } @@ -33,9 +31,7 @@ PostingListParams::setStr(const vespalib::string &key, const vespalib::string & PostingListParams::getStr(const vespalib::string &key) const { - Map::const_iterator it; - - it = _map.find(key); + auto it = _map.find(key); if (it != _map.end()) { return it->second; } @@ -81,9 +77,7 @@ void PostingListParams::get(const vespalib::string &key, TYPE &val) const { std::istringstream is; - Map::const_iterator it; - - it = _map.find(key); + auto it = _map.find(key); if (it != _map.end()) { is.str(it->second); is >> val; diff --git a/searchlib/src/vespa/searchlib/memoryindex/field_inverter.cpp b/searchlib/src/vespa/searchlib/memoryindex/field_inverter.cpp index 25aff06b5ef..206b92c85d0 100644 --- a/searchlib/src/vespa/searchlib/memoryindex/field_inverter.cpp +++ b/searchlib/src/vespa/searchlib/memoryindex/field_inverter.cpp @@ -138,12 +138,12 @@ FieldInverter::processAnnotations(const StringFieldValue &value) } } std::sort(_terms.begin(), _terms.end()); - SpanTermVector::const_iterator it = _terms.begin(); - SpanTermVector::const_iterator ite = _terms.end(); + auto it = _terms.begin(); + auto ite = _terms.end(); uint32_t wordRef; bool mustStep = false; for (; it != ite; ) { - SpanTermVector::const_iterator it_begin = it; + auto it_begin = it; for (; it != ite && it->first == it_begin->first; ++it) { if (it->second) { // it->second is a const FieldValue *. wordRef = saveWord(*it->second); diff --git a/searchlib/src/vespa/searchlib/queryeval/nearsearch.cpp b/searchlib/src/vespa/searchlib/queryeval/nearsearch.cpp index 5297646d7f8..1ac715ca92d 100644 --- a/searchlib/src/vespa/searchlib/queryeval/nearsearch.cpp +++ b/searchlib/src/vespa/searchlib/queryeval/nearsearch.cpp @@ -21,10 +21,8 @@ void setup_fields(uint32_t window, std::vector &matchers, const TermFieldMatc for (size_t i = 0; i < in.size(); ++i) { fields.insert(in[i]->getFieldId()); } - std::set::const_iterator pos = fields.begin(); - std::set::const_iterator end = fields.end(); - for (; pos != end; ++pos) { - matchers.push_back(T(window, *pos, in)); + for (const auto& elem : fields) { + matchers.push_back(T(window, elem, in)); } } diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakeegcompr64filterocc.cpp b/searchlib/src/vespa/searchlib/test/fakedata/fakeegcompr64filterocc.cpp index 6bba9d96d02..9521bed7827 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fakeegcompr64filterocc.cpp +++ b/searchlib/src/vespa/searchlib/test/fakedata/fakeegcompr64filterocc.cpp @@ -155,12 +155,8 @@ setupT(const FakeWord &fw) uint64_t lastL4SkipL3SkipPos = 0; unsigned int l4SkipCnt = 0; - - using FW = FakeWord; - using DWFL = FW::DocWordFeatureList; - - DWFL::const_iterator d(fw._postings.begin()); - DWFL::const_iterator de(fw._postings.end()); + auto d = fw._postings.begin(); + auto de = fw._postings.end(); if (d != de) { // Prefix support needs counts embedded in posting list diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakefilterocc.cpp b/searchlib/src/vespa/searchlib/test/fakedata/fakefilterocc.cpp index 5bd1d2044fe..a412a779006 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fakefilterocc.cpp +++ b/searchlib/src/vespa/searchlib/test/fakedata/fakefilterocc.cpp @@ -21,27 +21,18 @@ FakeFilterOcc::FakeFilterOcc(const FakeWord &fw) { std::vector fake; - using FW = FakeWord; - using DWFL = FW::DocWordFeatureList; - - DWFL::const_iterator d(fw._postings.begin()); - DWFL::const_iterator de(fw._postings.end()); - - while (d != de) { - fake.push_back(d->_docId); - ++d; + for (const auto& elem : fw._postings) { + fake.push_back(elem._docId); } std::swap(_uncompressed, fake); _docIdLimit = fw._docIdLimit; _hitDocs = fw._postings.size(); } - FakeFilterOcc::~FakeFilterOcc() { } - void FakeFilterOcc::forceLink() { diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.cpp b/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.cpp index ec476c4f6cf..99d0fb3b3f1 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.cpp +++ b/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.cpp @@ -228,10 +228,9 @@ FakeMemTreeOccMgr::remove(uint32_t wordIdx, uint32_t docId) void FakeMemTreeOccMgr::sortUnflushed() { - using I = std::vector::iterator; uint32_t seq = 0; - for (I i(_unflushed.begin()), ie(_unflushed.end()); i != ie; ++i) { - i->setSeq(++seq); + for (auto& elem : _unflushed) { + elem.setSeq(++seq); } std::sort(_unflushed.begin(), _unflushed.end()); } @@ -241,16 +240,15 @@ void FakeMemTreeOccMgr::flush() { using Aligner = FeatureStore::Aligner; - using I = std::vector::iterator; if (_unflushed.empty()) return; uint32_t lastWord = std::numeric_limits::max(); sortUnflushed(); - for (I i(_unflushed.begin()), ie(_unflushed.end()); i != ie; ++i) { - uint32_t wordIdx = i->getWordIdx(); - uint32_t docId = i->getDocId(); + for (auto& elem : _unflushed) { + uint32_t wordIdx = elem.getWordIdx(); + uint32_t docId = elem.getDocId(); PostingIdx &pidx(*_postingIdxs[wordIdx].get()); Tree &tree = pidx._tree; Tree::Iterator &itr = pidx._iterator; @@ -261,7 +259,7 @@ FakeMemTreeOccMgr::flush() itr.linearSeek(docId); } lastWord = wordIdx; - if (i->getRemove()) { + if (elem.getRemove()) { if (itr.valid() && itr.getKey() == docId) { uint64_t bits = _featureStore.bitSize(fw->getPackedIndex(), EntryRef(itr.getData().get_features_relaxed())); _featureSizes[wordIdx] -= Aligner::align((bits + 7) / 8) * 8; @@ -269,7 +267,7 @@ FakeMemTreeOccMgr::flush() } } else { if (!itr.valid() || docId < itr.getKey()) { - tree.insert(itr, docId, PostingListEntryType(i->getFeatureRef(), 0, 1)); + tree.insert(itr, docId, PostingListEntryType(elem.getFeatureRef(), 0, 1)); } } } @@ -320,13 +318,12 @@ FakeMemTreeOccFactory::~FakeMemTreeOccFactory() FakePosting::SP FakeMemTreeOccFactory::make(const FakeWord &fw) { - std::map::const_iterator - i(_mgr._fw2WordIdx.find(&fw)); + auto itr = _mgr._fw2WordIdx.find(&fw); - if (i == _mgr._fw2WordIdx.end()) + if (itr == _mgr._fw2WordIdx.end()) LOG_ABORT("should not be reached"); - uint32_t wordIdx = i->second; + uint32_t wordIdx = itr->second; assert(_mgr._postingIdxs.size() > wordIdx); @@ -341,8 +338,8 @@ FakeMemTreeOccFactory::setup(const std::vector &fws) using PostingIdx = FakeMemTreeOccMgr::PostingIdx; std::vector r; uint32_t wordIdx = 0; - std::vector::const_iterator fwi(fws.begin()); - std::vector::const_iterator fwe(fws.end()); + auto fwi = fws.begin(); + auto fwe = fws.end(); while (fwi != fwe) { _mgr._fakeWords.push_back(*fwi); _mgr._featureSizes.push_back(0); @@ -355,8 +352,8 @@ FakeMemTreeOccFactory::setup(const std::vector &fws) } PostingPriorityQueueMerger heap; - std::vector::iterator i(r.begin()); - std::vector::iterator ie(r.end()); + auto i = r.begin(); + auto ie = r.end(); FlushToken flush_token; while (i != ie) { i->read(); @@ -386,8 +383,7 @@ FakeMemTreeOcc2Factory::~FakeMemTreeOcc2Factory() = default; FakePosting::SP FakeMemTreeOcc2Factory::make(const FakeWord &fw) { - std::map::const_iterator - i(_mgr._fw2WordIdx.find(&fw)); + auto i = _mgr._fw2WordIdx.find(&fw); if (i == _mgr._fw2WordIdx.end()) LOG_ABORT("should not be reached"); diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakeword.cpp b/searchlib/src/vespa/searchlib/test/fakedata/fakeword.cpp index f68fb4a9037..4242f71bd60 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fakeword.cpp +++ b/searchlib/src/vespa/searchlib/test/fakedata/fakeword.cpp @@ -246,11 +246,11 @@ FakeWord::fakeup(search::BitVector &bitmap, } uint32_t field_len = 0; do { - DocWordPosFeatureList::iterator ie(wpf.end()); - DocWordPosFeatureList::iterator i(wpf.begin()); + auto ie = wpf.end(); + auto i = wpf.begin(); while (i != ie) { uint32_t lastwordpos = i->_wordPos; - DocWordPosFeatureList::iterator pi(i); + auto pi = i; ++i; while (i != ie && pi->_elementId == i->_elementId) { @@ -287,11 +287,8 @@ FakeWord::fakeup(search::BitVector &bitmap, dwf._accPositions = wordPosFeatures.size(); assert(dwf._positions == wpf.size()); postings.push_back(dwf); - DocWordPosFeatureList::iterator ie(wpf.end()); - DocWordPosFeatureList::iterator i(wpf.begin()); - while (i != ie) { - wordPosFeatures.push_back(*i); - ++i; + for (const auto& elem : wpf) { + wordPosFeatures.push_back(elem); } ++idx; if (idx >= docIdLimit) @@ -318,12 +315,11 @@ FakeWord::fakeupTemps(vespalib::Rand48 &rnd, void FakeWord::setupRandomizer(vespalib::Rand48 &rnd) { - using DWFL = DocWordFeatureList; Randomizer randomAdd; Randomizer randomRem; - DWFL::const_iterator d(_postings.begin()); - DWFL::const_iterator de(_postings.end()); + auto d = _postings.begin(); + auto de = _postings.end(); int32_t ref = 0; while (d != de) { @@ -338,8 +334,8 @@ FakeWord::setupRandomizer(vespalib::Rand48 &rnd) ++ref; } - DWFL::const_iterator ed(_extraPostings.begin()); - DWFL::const_iterator ede(_extraPostings.end()); + auto ed = _extraPostings.begin(); + auto ede = _extraPostings.end(); int32_t eref = -1; uint32_t tref = 0; @@ -378,9 +374,8 @@ FakeWord::setupRandomizer(vespalib::Rand48 &rnd) void FakeWord::addDocIdBias(uint32_t docIdBias) { - using DWFL = DocWordFeatureList; - DWFL::iterator d(_postings.begin()); - DWFL::iterator de(_postings.end()); + auto d = _postings.begin(); + auto de = _postings.end(); for (; d != de; ++d) { d->_docId += docIdBias; } @@ -404,14 +399,12 @@ FakeWord::validate(search::queryeval::SearchIterator *iterator, iterator->initFullRange(); uint32_t docId = 0; - using DWFL = DocWordFeatureList; - using DWPFL = DocWordPosFeatureList; using TMDPI = TermFieldMatchData::PositionsIterator; - DWFL::const_iterator d(_postings.begin()); - DWFL::const_iterator de(_postings.end()); - DWPFL::const_iterator p(_wordPosFeatures.begin()); - DWPFL::const_iterator pe(_wordPosFeatures.end()); + auto d = _postings.begin(); + auto de = _postings.end(); + auto p = _wordPosFeatures.begin(); + auto pe = _wordPosFeatures.end(); if (verbose) printf("Start validate word '%s'\n", _name.c_str()); @@ -484,14 +477,12 @@ FakeWord::validate(search::queryeval::SearchIterator *iterator, iterator->initFullRange(); uint32_t docId = 1; - using DWFL = DocWordFeatureList; - using DWPFL = DocWordPosFeatureList; using TMDPI = TermFieldMatchData::PositionsIterator; - DWFL::const_iterator d(_postings.begin()); - DWFL::const_iterator de(_postings.end()); - DWPFL::const_iterator p(_wordPosFeatures.begin()); - DWPFL::const_iterator pe(_wordPosFeatures.end()); + auto d = _postings.begin(); + auto de = _postings.end(); + auto p = _wordPosFeatures.begin(); + auto pe = _wordPosFeatures.end(); if (verbose) printf("Start validate word '%s'\n", _name.c_str()); @@ -556,10 +547,8 @@ FakeWord::validate(search::queryeval::SearchIterator *iterator, bool verbose) co iterator->initFullRange(); uint32_t docId = 1; - using DWFL = DocWordFeatureList; - - DWFL::const_iterator d(_postings.begin()); - DWFL::const_iterator de(_postings.end()); + auto d = _postings.begin(); + auto de = _postings.end(); if (verbose) printf("Start validate word '%s'\n", _name.c_str()); @@ -599,14 +588,12 @@ FakeWord::validate(FieldReader &fieldReader, uint32_t presidue; bool unpres; - using DWFL = DocWordFeatureList; - using DWPFL = DocWordPosFeatureList; using TMDPI = TermFieldMatchData::PositionsIterator; - DWFL::const_iterator d(_postings.begin()); - DWFL::const_iterator de(_postings.end()); - DWPFL::const_iterator p(_wordPosFeatures.begin()); - DWPFL::const_iterator pe(_wordPosFeatures.end()); + auto d = _postings.begin(); + auto de = _postings.end(); + auto p = _wordPosFeatures.begin(); + auto pe = _wordPosFeatures.end(); if (verbose) printf("Start validate word '%s'\n", _name.c_str()); @@ -633,13 +620,8 @@ FakeWord::validate(FieldReader &fieldReader, #else (void) unpres; - using Elements = WordDocElementFeatures; - using Positions = WordDocElementWordPosFeatures; - - std::vector::const_iterator element = - features.elements().begin(); - std::vector::const_iterator position = - features.word_positions().begin(); + auto element = features.elements().begin(); + auto position = features.word_positions().begin(); TermFieldMatchData *tfmd = matchData[0]; assert(tfmd != 0); @@ -701,12 +683,10 @@ FakeWord::validate(FieldReader &fieldReader, void FakeWord::validate(const std::vector &docIds) const { - using DWFL = DocWordFeatureList; - using DL = std::vector; - DWFL::const_iterator d(_postings.begin()); - DWFL::const_iterator de(_postings.end()); - DL::const_iterator di(docIds.begin()); - DL::const_iterator die(docIds.end()); + auto d = _postings.begin(); + auto de = _postings.end(); + auto di = docIds.begin(); + auto die = docIds.end(); while (d != de) { assert(di != die); @@ -721,9 +701,8 @@ FakeWord::validate(const std::vector &docIds) const void FakeWord::validate(const search::BitVector &bv) const { - using DWFL = DocWordFeatureList; - DWFL::const_iterator d(_postings.begin()); - DWFL::const_iterator de(_postings.end()); + auto d = _postings.begin(); + auto de = _postings.end(); uint32_t bitHits = bv.countTrueBits(); assert(bitHits == _postings.size()); (void) bitHits; @@ -745,13 +724,10 @@ FakeWord::dump(FieldWriter &fieldWriter, uint32_t residue; DocIdAndPosOccFeatures features; - using DWFL = DocWordFeatureList; - using DWPFL = DocWordPosFeatureList; - - DWFL::const_iterator d(_postings.begin()); - DWFL::const_iterator de(_postings.end()); - DWPFL::const_iterator p(_wordPosFeatures.begin()); - DWPFL::const_iterator pe(_wordPosFeatures.end()); + auto d = _postings.begin(); + auto de = _postings.end(); + auto p = _wordPosFeatures.begin(); + auto pe = _wordPosFeatures.end(); if (verbose) printf("Start dumping word '%s'\n", _name.c_str()); diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakezcbfilterocc.cpp b/searchlib/src/vespa/searchlib/test/fakedata/fakezcbfilterocc.cpp index 3caca05669c..dc6f546fad0 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fakezcbfilterocc.cpp +++ b/searchlib/src/vespa/searchlib/test/fakedata/fakezcbfilterocc.cpp @@ -64,12 +64,8 @@ FakeZcbFilterOcc::FakeZcbFilterOcc(const FakeWord &fw) std::vector bytes; uint32_t lastDocId = 0u; - - using FW = FakeWord; - using DWFL = FW::DocWordFeatureList; - - DWFL::const_iterator d(fw._postings.begin()); - DWFL::const_iterator de(fw._postings.end()); + auto d = fw._postings.begin(); + auto de = fw._postings.end(); while (d != de) { if (lastDocId == 0u) { diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakezcfilterocc.cpp b/searchlib/src/vespa/searchlib/test/fakedata/fakezcfilterocc.cpp index 24c2f82279e..809746a87e6 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fakezcfilterocc.cpp +++ b/searchlib/src/vespa/searchlib/test/fakedata/fakezcfilterocc.cpp @@ -149,14 +149,10 @@ FakeZcFilterOcc::setupT(const FakeWord &fw) PostingListCounts counts; Zc4PostingWriter writer(counts); - using FW = FakeWord; - using DWFL = FW::DocWordFeatureList; - using DWPFL = FW::DocWordPosFeatureList; - - DWFL::const_iterator d(fw._postings.begin()); - DWFL::const_iterator de(fw._postings.end()); - DWPFL::const_iterator p(fw._wordPosFeatures.begin()); - DWPFL::const_iterator pe(fw._wordPosFeatures.end()); + auto d = fw._postings.begin(); + auto de = fw._postings.end(); + auto p = fw._wordPosFeatures.begin(); + auto pe = fw._wordPosFeatures.end(); DocIdAndPosOccFeatures features; EGPosOccEncodeContext f1(&_fieldsParams); EG2PosOccEncodeContext f0(&_fieldsParams); diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fpfactory.cpp b/searchlib/src/vespa/searchlib/test/fakedata/fpfactory.cpp index d705541b3fc..150d8a3af32 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fpfactory.cpp +++ b/searchlib/src/vespa/searchlib/test/fakedata/fpfactory.cpp @@ -49,7 +49,7 @@ getFPFactory(const std::string &name, const Schema &schema) if (fpFactoryMap == nullptr) return nullptr; - FPFactoryMap::const_iterator i(fpFactoryMap->find(name)); + auto i = fpFactoryMap->find(name); if (i != fpFactoryMap->end()) return i->second(schema); @@ -64,10 +64,9 @@ getPostingTypes() std::vector res; if (fpFactoryMap != nullptr) - for (FPFactoryMap::const_iterator i(fpFactoryMap->begin()); - i != fpFactoryMap->end(); - ++i) - res.push_back(i->first); + for (const auto& elem : *fpFactoryMap) { + res.push_back(elem.first); + } return res; } diff --git a/searchlib/src/vespa/searchlib/test/mock_attribute_context.cpp b/searchlib/src/vespa/searchlib/test/mock_attribute_context.cpp index 933e14fe379..4197dee6cba 100644 --- a/searchlib/src/vespa/searchlib/test/mock_attribute_context.cpp +++ b/searchlib/src/vespa/searchlib/test/mock_attribute_context.cpp @@ -21,17 +21,13 @@ MockAttributeContext::getAttributeStableEnum(const string &name) const { } void MockAttributeContext::getAttributeList(std::vector & list) const { - Map::const_iterator pos = _vectors.begin(); - Map::const_iterator end = _vectors.end(); - for (; pos != end; ++pos) { - list.push_back(pos->second); + for (const auto& elem : _vectors) { + list.push_back(elem.second); } } MockAttributeContext::~MockAttributeContext() { - Map::iterator pos = _vectors.begin(); - Map::iterator end = _vectors.end(); - for (; pos != end; ++pos) { - delete pos->second; + for (auto& elem : _vectors) { + delete elem.second; } } diff --git a/searchlib/src/vespa/searchlib/test/mock_attribute_manager.cpp b/searchlib/src/vespa/searchlib/test/mock_attribute_manager.cpp index bc5e8356957..15cb3065b75 100644 --- a/searchlib/src/vespa/searchlib/test/mock_attribute_manager.cpp +++ b/searchlib/src/vespa/searchlib/test/mock_attribute_manager.cpp @@ -6,7 +6,7 @@ namespace search::attribute::test { AttributeVector::SP MockAttributeManager::findAttribute(const vespalib::string &name) const { - AttributeMap::const_iterator itr = _attributes.find(name); + auto itr = _attributes.find(name); if (itr != _attributes.end()) { return itr->second; } diff --git a/searchlib/src/vespa/searchlib/transactionlog/translogclient.cpp b/searchlib/src/vespa/searchlib/transactionlog/translogclient.cpp index 8916a4cf0b5..9ec186f92c0 100644 --- a/searchlib/src/vespa/searchlib/transactionlog/translogclient.cpp +++ b/searchlib/src/vespa/searchlib/transactionlog/translogclient.cpp @@ -164,7 +164,7 @@ Session * TransLogClient::findSession(const vespalib::string & domainName, int sessionId) { SessionKey key(domainName, sessionId); - SessionMap::iterator found(_sessions.find(key)); + auto found = _sessions.find(key); Session * session((found != _sessions.end()) ? found->second : nullptr); return session; } diff --git a/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp b/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp index db02f4f037e..ac9c6318fb5 100644 --- a/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp +++ b/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp @@ -519,8 +519,8 @@ TransLogServer::listDomains(FRT_RPCRequest *req) vespalib::string domains; ReadGuard domainGuard(_domainMutex); - for(DomainList::const_iterator it(_domains.begin()), mt(_domains.end()); it != mt; it++) { - domains += it->second->name(); + for (const auto& elem : _domains) { + domains += elem.second->name(); domains += "\n"; } ret.AddInt32(0); diff --git a/searchlib/src/vespa/searchlib/util/posting_priority_queue.hpp b/searchlib/src/vespa/searchlib/util/posting_priority_queue.hpp index 7f4733d8a70..b7fc9cfab05 100644 --- a/searchlib/src/vespa/searchlib/util/posting_priority_queue.hpp +++ b/searchlib/src/vespa/searchlib/util/posting_priority_queue.hpp @@ -10,7 +10,6 @@ template void PostingPriorityQueue::adjust() { - using VIT = typename Vector::iterator; if (!_vec.front().get()->isValid()) { _vec.erase(_vec.begin()); // Iterator no longer valid return; @@ -19,9 +18,9 @@ PostingPriorityQueue::adjust() return; } // Peform binary search to find first element higher than changed value - VIT gt = std::upper_bound(_vec.begin() + 1, _vec.end(), _vec.front()); - VIT to = _vec.begin(); - VIT from = to; + auto gt = std::upper_bound(_vec.begin() + 1, _vec.end(), _vec.front()); + auto to = _vec.begin(); + auto from = to; ++from; Ref changed = *to; // Remember changed value while (from != gt) { // Shift elements to make space for changed value -- cgit v1.2.3