MCPcopy Create free account
hub / github.com/apache/impala / JoinStringsIterator

Function JoinStringsIterator

be/src/gutil/strings/join.h:216–238  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

214
215template <class ITERATOR>
216void JoinStringsIterator(const ITERATOR& start,
217 const ITERATOR& end,
218 const StringPiece& delim,
219 string* result) {
220 result->clear();
221
222 // Precompute resulting length so we can reserve() memory in one shot.
223 if (start != end) {
224 int length = delim.size()*(distance(start, end)-1);
225 for (ITERATOR iter = start; iter != end; ++iter) {
226 length += iter->size();
227 }
228 result->reserve(length);
229 }
230
231 // Now combine everything.
232 for (ITERATOR iter = start; iter != end; ++iter) {
233 if (iter != start) {
234 result->append(delim.data(), delim.size());
235 }
236 result->append(iter->data(), iter->size());
237 }
238}
239
240template <class ITERATOR>
241inline string JoinStringsIterator(const ITERATOR& start,

Callers 2

JoinStringsInArrayFunction · 0.85
JoinStringsFunction · 0.85

Calls 5

reserveMethod · 0.80
clearMethod · 0.65
sizeMethod · 0.45
appendMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected