MCPcopy Create free account
hub / github.com/chokkan/crfsuite / setslice

Function setslice

swig/python/export_wrap.cpp:4322–4343  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4320
4321 template <class Sequence, class Difference, class InputSeq>
4322 inline void
4323 setslice(Sequence* self, Difference i, Difference j, const InputSeq& v = InputSeq()) {
4324 typename Sequence::size_type size = self->size();
4325 typename Sequence::size_type ii = swig::check_index(i, size, true);
4326 typename Sequence::size_type jj = swig::slice_index(j, size);
4327 if (jj < ii) jj = ii;
4328 size_t ssize = jj - ii;
4329 if (ssize <= v.size()) {
4330 typename Sequence::iterator sb = self->begin();
4331 typename InputSeq::const_iterator vmid = v.begin();
4332 std::advance(sb,ii);
4333 std::advance(vmid, jj - ii);
4334 self->insert(std::copy(v.begin(), vmid, sb), vmid, v.end());
4335 } else {
4336 typename Sequence::iterator sb = self->begin();
4337 typename Sequence::iterator se = self->begin();
4338 std::advance(sb,ii);
4339 std::advance(se,jj);
4340 self->erase(sb,se);
4341 self->insert(sb, v.begin(), v.end());
4342 }
4343 }
4344
4345 template <class Sequence, class Difference>
4346 inline void

Calls 7

check_indexFunction · 0.85
slice_indexFunction · 0.85
sizeMethod · 0.45
beginMethod · 0.45
insertMethod · 0.45
endMethod · 0.45
eraseMethod · 0.45

Tested by

no test coverage detected