|
You last visited: Today at 22:59
Advertisement
Int Größenordung
Discussion on Int Größenordung within the C/C++ forum part of the Coders Den category.
07/27/2014, 21:00
|
#1
|
elite*gold: 0
Join Date: Jul 2014
Posts: 8
Received Thanks: 0
|
Int Größenordung
Hallo, ich habe ein Problem.
Ich habe, um mir 100 int vars zu sparen das ganze so deklariert:
PHP Code:
int FirstInt[100];
Jetzt wird mit einer for schleife ein bestimmter Wert in diese int Variable(n) so rein geschrieben:
PHP Code:
FirstInt[1] = ...; FirstInt[2] = ...; FirstInt[3] = ...; FirstInt[4] = ...; FirstInt[5] = ...;
Das ganze klappt ja auch alles wunderschön aber jetzt will ich checken welche variable den erst-kleinsten Wert, zweit-kleinsten ... Wert hat.
Ich denke wenn ich wüsste wie ich checke welche Variable den erst-kleinsten Wert hat, könnte ich das ganze auch für das auslesen der zweit-kleinsten Var ... umsetzen.
|
|
|
07/27/2014, 22:06
|
#2
|
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
|
Du könntest das Array mit std::sort sortieren und hättest dein gewünschtes Ergebnis sofort. Btw sind alte C-Style Arrays böse, benutze std::array bzw std::vector.
Beispiel:
Code:
#include <algorithm>
#include <array>
#include <functional>
#include <iostream>
#include <random>
const int SIZE = 100;
int main()
{
std::random_device rd;
std::default_random_engine re(rd());
std::uniform_int_distribution<int> dist(1, 1000);
std::array<int, SIZE> arr;
auto gen = std::bind(dist, re);
std::generate(std::begin(arr), std::end(arr), gen);
// Aufruf der dich interessieren sollte
std::sort(std::begin(arr), std::end(arr));
for(auto n : arr)
{
std::cout << n << std::endl;
}
}
|
|
|
07/27/2014, 22:19
|
#3
|
elite*gold: 0
Join Date: Jul 2014
Posts: 8
Received Thanks: 0
|
Ok sieht interessant aus, aber was ist denn das Array da?
Weil ich will ja den ersten Wert ... ausgelesen haben und dann kann ich z.B. ArrayVar[5], wenn das den kleinsten Wert enthält ausgeben lassen.
|
|
|
07/27/2014, 22:22
|
#4
|
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
|
Array ist die Datenstruktur, welche die Elemente hält. Durch das Sortieren hast du den kleinsten Wert an erster Stelle und so weiter.
Zugreifen kannst du ganz klassisch wie gewohnt mit den eckigen Klammer.
Code:
std::cout << "kleinstes Element: " << arr[0] << std::endl;
|
|
|
07/27/2014, 22:33
|
#5
|
elite*gold: 0
Join Date: Jul 2014
Posts: 8
Received Thanks: 0
|
Jo sieht aus als dürfte es gehen, aber ich bekomme das ganze nicht compiled.
Das Problem liegt irgendwo hier:
PHP Code:
for(auto n : arr)
Habe es mit 3 Compilern und 4 IDE's probiert.
BTW: Ein ";" fehlt anscheinend auch. xD
|
|
|
07/27/2014, 22:38
|
#6
|
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
|
Kompiliert bei mir problemlos.
Dass du 3 Compiler benutzt hat, bringt mir recht wenig. Welche du benutzt hast ist von Bedeutung.
Ist er aktuell, sprich C++11 konform?
|
|
|
07/27/2014, 22:44
|
#7
|
elite*gold: 0
Join Date: Jul 2014
Posts: 8
Received Thanks: 0
|
GNU GCC, Visual Studio 2010 und Borland(C++ Builder)
Welchen nimmst du denn?
|
|
|
07/27/2014, 22:48
|
#8
|
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
|
Den aktuellen msvc. Lösung des Problems wäre zum Beispiel dein Visual Studio auf eine aktuelle Version (2013) zu upgraden.
GNU GCC hat laut Tabelle auch ausreichenden Support für die C++11 Features.
Ob du den Support für C++11 beim GNU Compiler erst via Switch aktivieren muss, kann ich dir nicht sagen. Dafür einfach mal eine Suchmaschine verwenden.
|
|
|
07/27/2014, 22:52
|
#9
|
elite*gold: 0
Join Date: Jul 2014
Posts: 8
Received Thanks: 0
|
hm okay werde das mal probieren, aber es muss leider unter borland laufen ^
EDIT: Es geht unter 2013, aber halt nicht borland.
|
|
|
07/27/2014, 22:59
|
#10
|
elite*gold: 155
Join Date: Aug 2009
Posts: 628
Received Thanks: 153
|
Normalerweise sollten problematische Codezeilen von den meisten IDEs markiert werden.
Ansonsten einfach mal in den Compileroutput schauen, ob dort Fehler sind.
Im Normalfall helfen diese Informationen weiter (dort stehen meist auch recht genaue Zeilenangaben, wo der Fehler zu finden ist).
Falls nicht, einfach mal bitte den Fehler posten, dann kann man evtl weiterhelfen.
|
|
|
07/27/2014, 23:05
|
#11
|
elite*gold: 0
Join Date: Jul 2014
Posts: 8
Received Thanks: 0
|
Ja borland. Da fängt es beim include <array> an und macht auch fast das ganze std zeug net mit. #BorlandHalt
|
|
|
07/27/2014, 23:31
|
#12
|
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
|
Warm möchtest du Borland benutzen? Wenn Borland so hinterherhängt, was den Standard angeht, würde ich es auch nicht freiwillig benutzen wollen.
|
|
|
07/27/2014, 23:34
|
#13
|
elite*gold: 0
Join Date: Jul 2014
Posts: 8
Received Thanks: 0
|
Jo das ist so eher ein Muss, außerdem mag ich es sonst sehr.
Man kann ansonsten sehr gut damit arbeiten(Ich rede es mir schön )
xD
|
|
|
07/28/2014, 07:32
|
#14
|
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
|
Quote:
Originally Posted by bank0123
Jo das ist so eher ein Muss, außerdem mag ich es sonst sehr.
Man kann ansonsten sehr gut damit arbeiten(Ich rede es mir schön )
xD
|
Solltest du aber nicht, Borland C++ 5.5 (also die neuste Version) scheint im Jahr 2000 veröffentlicht worden zu sein.
Ist klar das dir hier die neuen C++ Features fehlen und das Standardbibliotheken teilweise fehlen, kann auch gut sein. Also mindestens VS 2012 oder einen aktuellen GCC. (Da muss man definitiv ein Flag für C++ 11 setzen)
|
|
|
07/28/2014, 12:38
|
#15
|
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
|
In wie fern gut? Wo ist sie besser als Visual Studio? Auch wenn ich nicht immer der MS Fanatiker bin, muss einfach mal festgehalten werden, dass Visual Studio unter Windows einfach ungeschlagen ist.
|
|
|
All times are GMT +2. The time now is 22:59.
|
|