• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zamiana malych liter na duze, transform vs petla for

Aruba Cloud - Virtual Private Server VPS
0 głosów
1,311 wizyt
pytanie zadane 6 stycznia 2020 w C i C++ przez sokoll22 Nowicjusz (150 p.)

Witam

Proszę mi powiedziec czy taka petla jest w czyms gorsza/lepsza od funkcji  transform? Program ma zmieniac male litery na duze.

 

#include <iostream>


using namespace std;

string napis="cos tam";


 main()
{


    for(int i=0;i<=(napis.size()-1);i++)
    {
napis[i]=toupper(napis[i]);



    }
    cout<<napis;


return 0;

}

Pozdrawiam!

1 odpowiedź

0 głosów
odpowiedź 7 stycznia 2020 przez tkz Nałogowiec (42,020 p.)
wybrane 7 stycznia 2020 przez sokoll22
 
Najlepsza
static void twoja(benchmark::State& state)
{
    std::string napis = "napisbardzdlugoaleinie";
    for (auto _ : state)
    {
        for (int i = 0; i <= (napis.size() - 1); i++)
        {
            napis[i] = toupper(napis[i]);
        }
    }
}
BENCHMARK(twoja);

static void standard(benchmark::State& state)
{
    std::string napis = "napisbardzdlugoaleinie";
    for (auto _ : state)
    {
        std::transform(napis.begin(), napis.end(), napis.begin(), ::toupper);
    }
}
BENCHMARK(standard);

http://quick-bench.com/uMLu2O-bybn702VkzP6e1wc5i0w

Sprawdź optymalizację. Poza tym może też się inaczej zachować dla innej długości stringa. 

komentarz 7 stycznia 2020 przez sokoll22 Nowicjusz (150 p.)
Dzieki. Super sprawa  z tym testem. Jestem poczatkujacy i pierwszy raz to widze. Powiedz  czy predkosc zadzialania jest glownym kryterium czy jeden kod jest lepszy od drugiego?
komentarz 7 stycznia 2020 przez mokrowski Mędrzec (158,200 p.)

Tu masz jeszcze autowektoryzację. Intrisics'ami było by jeszcze szybciej ale z całą pewnością mniej czytelnie.

http://quick-bench.com/vSOsS-0HY7BxXZzO0uVYxYzsZTY

komentarz 7 stycznia 2020 przez tkz Nałogowiec (42,020 p.)

@sokoll22, O ile nie działasz w systemie stawiającym na "low latency", to czytelność powinna być na pierwszym miejscu. Wydajność nie jest problem, dopóki wydajność nie jest problemem. 

Podobne pytania

0 głosów
1 odpowiedź 12,872 wizyt
pytanie zadane 25 października 2016 w C i C++ przez mistrzuniu1 Użytkownik (600 p.)
0 głosów
1 odpowiedź 397 wizyt
pytanie zadane 13 października 2020 w C i C++ przez mccarol Nowicjusz (240 p.)
0 głosów
3 odpowiedzi 3,327 wizyt
pytanie zadane 28 marca 2020 w C i C++ przez Eriss69 Gaduła (4,470 p.)

93,335 zapytań

142,331 odpowiedzi

322,415 komentarzy

62,670 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...