Професионална програма
Loading...
+ Нов въпрос
RaUndreundre avatar RaUndreundre 52 Точки

Премахване на последен свързващ елемент при loop

Здравейте, има ли практичен или общоприет начин за премахване на последният свързващ елемент преди принтиране, (например премахване на ", ")?

for (int x : myVector) {
        std::cout << x << ", ";
    }
    std::cout << std::endl;

Аз използвам по-долу показания начин, но ми се струва че голямо размотаване пада с това "скачане" от вектор че към стрийм, че към стринг. Все си мисля, че в практиката се ползва друг подход или греша?
 

    for (int x : myVector) {
        std::ostringstream oss;
        oss << x;
        result += oss.str();
        result += ", ";
    }
    result = result.substr(0, (result.length() - 2));
    std::cout << result << std::endl;

 

Тагове:
1
C++ Programming 26/03/2021 10:21:23
MartinBG avatar MartinBG 3909 Точки
Best Answer

Ето вариант с използване на std::copy:

  if (!myVector.empty()) {
    std::copy(myVector.begin(), --myVector.end(), std::ostream_iterator<int>(std::cout, ", "));
    std::cout << myVector.back();
  }

 

1