Udostępnij za pośrednictwem


Ciąg znaków i formatowania (nowoczesny C++) we/wy

C++ iostreams są bardziej kłopotliwe w użyciu dla sformatowany ciąg we/wy.Alternatywnie można użyć Boost.Format z bibliotek C++ zwiększenie wydajności, mimo, że jest niestandardowy.Można pobrać z dowolnym bibliotekę zwiększenie wydajności zwiększenie wydajności witryny sieci Web.

Niektóre zalety Boost.Format są następujące:

  • Dla całej: Typ palety i zgłasza wyjątek dla błędów — na przykład, specyfikacja zbyt mała lub zbyt wiele elementów.

  • Extensible: Sprawdza w przypadku dowolnego typu, który można przesłać strumieniowo.

  • Wygoda: Standard Posix i podobne ciągi formatów.

Chociaż Boost.Format jest oparty na C++ iostreams, które są bezpieczne i rozszerzalny, nie są optymalizacji wydajności.Gdy potrzebujesz, aby zoptymalizować wydajność, należy rozważyć C printf i sprintf, które są szybkie i łatwe w użyciu.Jednak nie są one extensible i bezpieczne z luk w zabezpieczeniach.(Istnieją wersje bezpieczne, ale wiążą się niewielkie wydajnie.Aby uzyskać więcej informacji, zobacz printf_s, _printf_s_l, wprintf_s, _wprintf_s_l i sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l).

Poniższy kod demonstruje, niektóre z zwiększenie wydajności funkcji formatowania.

    string s = str( format("%2% %2% %1%\n") % "world" % "hello" );
    // s contains "hello hello world"  
 
    for( auto i = 0; i < names.size(); ++i )
        cout << format("%1% %2% %|40t|%3%\n") % first[i] % last[i] % tel[i];
    // Georges Benjamin Clemenceau             +33 (0) 123 456 789
    // Jean de Lattre de Tassigny              +33 (0) 987 654 321

Zobacz też

Inne zasoby

Nowoczesne C++ Programming Guide

Skorowidz języka C++

Biblioteka języka C++ wzorcowego