@@ -329,14 +329,12 @@ void ExprBuilder::_add_quadratic_term(IndexT i, IndexT j, CoeffT coeff)
329
329
{
330
330
std::swap (i, j);
331
331
}
332
- auto it = quadratic_terms.find ({i, j});
333
- if (it == quadratic_terms.end ())
332
+ VariablePair vp{i, j};
333
+ auto ret = quadratic_terms.emplace (vp, coeff);
334
+ if (!ret.second )
334
335
{
335
- quadratic_terms.insert ({{i, j}, coeff});
336
- }
337
- else
338
- {
339
- it->second += coeff;
336
+ auto &iter = ret.first ;
337
+ iter->second += coeff;
340
338
}
341
339
}
342
340
void ExprBuilder::_set_quadratic_coef (IndexT i, IndexT j, CoeffT coeff)
@@ -345,14 +343,12 @@ void ExprBuilder::_set_quadratic_coef(IndexT i, IndexT j, CoeffT coeff)
345
343
{
346
344
std::swap (i, j);
347
345
}
348
- auto it = quadratic_terms.find ({i, j});
349
- if (it == quadratic_terms.end ())
350
- {
351
- quadratic_terms.insert ({{i, j}, coeff});
352
- }
353
- else
346
+ VariablePair vp{i, j};
347
+ auto ret = quadratic_terms.emplace (vp, coeff);
348
+ if (!ret.second )
354
349
{
355
- it->second = coeff;
350
+ auto &iter = ret.first ;
351
+ iter->second = coeff;
356
352
}
357
353
}
358
354
void ExprBuilder::add_quadratic_term (const VariableIndex &i, const VariableIndex &j, CoeffT coeff)
@@ -366,26 +362,20 @@ void ExprBuilder::set_quadratic_coef(const VariableIndex &i, const VariableIndex
366
362
367
363
void ExprBuilder::_add_affine_term (IndexT i, CoeffT coeff)
368
364
{
369
- auto it = affine_terms.find (i );
370
- if (it == affine_terms. end () )
365
+ auto ret = affine_terms.emplace (i, coeff );
366
+ if (!ret. second )
371
367
{
372
- affine_terms.insert ({i, coeff});
373
- }
374
- else
375
- {
376
- it->second += coeff;
368
+ auto &iter = ret.first ;
369
+ iter->second += coeff;
377
370
}
378
371
}
379
372
void ExprBuilder::_set_affine_coef (IndexT i, CoeffT coeff)
380
373
{
381
- auto it = affine_terms.find (i);
382
- if (it == affine_terms.end ())
383
- {
384
- affine_terms.insert ({i, coeff});
385
- }
386
- else
374
+ auto ret = affine_terms.emplace (i, coeff);
375
+ if (!ret.second )
387
376
{
388
- it->second = coeff;
377
+ auto &iter = ret.first ;
378
+ iter->second = coeff;
389
379
}
390
380
}
391
381
void ExprBuilder::add_affine_term (const VariableIndex &i, CoeffT coeff)
0 commit comments