Arithmetik mit Positionen in C++ [] (Arithmetik mit Positionen in C++), Lektion, Seite 723721
https://www.purl.org/stefan_ram/pub/positionsarithmetik_c++ (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C++-Kurs

Arithmetik mit Positionen in C++ 

Hier darf die Position wieder »const« sein.

Nicht alle Positionen unterstützen diese Arithmetik, einige erlauben zwar »++«, aber nicht »+«.

»b + 2« bedeutet „die Position, die »b« nach zweimaligem »++b;« hätte (wenn es nicht »const« wäre)“.

»*( b + 2 )« bedeutet „der Wert an der Position »b + 2«“.

main.cpp

#include <initializer_list>
#include <iostream>
#include <iterator>
#include <ostream>
#include <string>

using namespace ::std::literals;

int main()

{ ::std::string s = "abc"s;
auto const b = cbegin( s );
auto const t = cend( s );
::std::cout << *( b + 0 )<< '\n';
::std::cout << *( b + 1 )<< '\n';
::std::cout << *( b + 2 )<< '\n';
::std::cout << *( t - 1 )<< '\n';
::std::cout << *( t - 2 )<< '\n';
::std::cout << *( t - 3 )<< '\n'; }

transcript
a
b
c
c
b
a

Nicht alle Positionen können als Operand des binären Summenoperators verwendet werden. Dies kann vom Typ der Folge abhängen, auf die sie sich beziehen.

main.cpp

#include <iostream>
#include <ostream>
#include <string>
#include <iterator>
#include <algorithm>
#include <initializer_list>
#include <random> // std::default_random_engine
#include <chrono> // std::chrono::system_clock

int main()
{ ::std::string str{ "zyxwvutsrqponmlkjihgfedcba" };
::std::cout << str << "\n";
shuffle( begin( str ), begin( str )+ 12, ::std::default_random_engine
( ::std::chrono::system_clock::now().time_since_epoch().count() ));
::std::cout << str << "\n";
::std::sort( end( str )- 12, str.end() );
::std::cout << str << "\n"; }

::std::cout
zyxwvutsrqponmlkjihgfedcba
pyqxzoswvtrunmlkjihgfedcba
pyqxzoswvtrunmabcdefghijkl

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723721 stefan_ram:723721 Arithmetik mit Positionen in C++ Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723721, slrprddef723721, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/positionsarithmetik_c++