ich bin momentan dabei, Aufgabe 3.20 im C++ Primer zu lösen.
Dabei soll ich eine Reihe von Ganzzahlen in einen Vector lesen und dann die Summe mit den angrenzenden Paaren berechnen.
Dafür habe ich diesen Code hier geschrieben:
Code:
#include <iostream>
#include <vector>
#include <string>
using std::vector;
using std::string;
int main()
{
vector<string::size_type> storage;
int stor;
while (std::cin >> stor)
storage.push_back(stor);
for (unsigned i = 0; i == storage.size() - 1; ++i)
{
int num1(0), num2(0), num3(0);
for (int &c : storage[i])
num1 += c;
if (i != 0)
{
for (int &c : storage[i - 1])
num3 += c;
}
if (i != storage.size() - 1)
{
for (int &c : storage[i + 1])
num2 += c;
}
std::cout << "Sum is " << num1 + num2 + num3 << std::endl;
}
system("Pause");
return 0;
}
Allerdings setzt die for-Funktion nie ein und weiß leider auch nicht woran das liegt. :X
Könnte mir jemand bei diesem Problem behilflich sein?
Ahh, da habe ich den zweiten Reiter so behandelt, als würde der for abgebrochen werden, wenn die Bedingung erfüllt wird... :X Danke!
Hätte jetzt aber ein neues Problem, und zwar kriege ich hier:
Code:
for (int &c : storage[i])
num1 += c;
diesen Fehler: "no callable 'begin' function found for type 'unsigned int'"
Hättest du da auch eine Idee?
Bist du dir sicher, dass die Referenz C den richtigen Datentypen hat? Du kannst es ja mal mit auto versuchen. Hier ist übrigens keine Referenz angebracht. Wieso nutzt du einen Index/Subscript Operator für einen Iterator?
Bist du dir sicher, dass die Referenz C den richtigen Datentypen hat? Du kannst es ja mal mit auto versuchen. Hier ist übrigens keine Referenz angebracht. Wieso nutzt du einen Index/Subscript Operator für einen Iterator?
Sollte ja eigentlich, schließlich lässt der string::type_ref Typ nur Zahlen zu und es werden ja nur einzelne Zahlen ausgelesen. Habe es zur Sicherheit nochmals getestet, scheint auch nicht zu funktionieren. :X
Wieso denn keine Referenz? Ich will ja nur den einzelnen Buchstaben auslesen. Was wäre denn angebrachter?
Weil ich einzelne Zahlen auslesen will. Schau mal in den ersten Post, dort ist der Code in der Gesamtheit zu sehen.
In einem range for nutzt du aber einen Iterator und dementsprechend ist der Index unangebracht. Eine Referenz wäre nützlich um den Wert von C zu verändern, das tust du aber gar nicht.
In einem range for nutzt du aber einen Iterator und dementsprechend ist der Index unangebracht. Eine Referenz wäre nützlich um den Wert von C zu verändern, das tust du aber gar nicht.
Der Index ist dort schon angebracht, schließlich will ich nicht alle Vektoren lesen sondern nur einen Wert davon.
Aber was soll ich denn stattdessen verwenden?
Ich will ja schließlich nur einen Wert ablesen, und ein neues Objekt dafür zu erschaffen ist ja nicht wirklich nötig.
€dit: bzw. nein, der Index ist nicht nötig, habe die Aufgabe falsch verstanden. Bitte einfach wegdenken. Naja, der ganze Code ist somit nicht wirklich interessant. Trotzdem würde ich gerne meine Fehler erfahren. :x
for (unsigned int i = 1; i != storage.size() - 2; ++i)
{
std::cout << (storage[i - 1] + storage[i] + storage[i + 1]) << std::endl;
}
Wäre eine mögliche Lösung, da gibt er es ja von jedem aus.
Du greifst mit deinem Index auf ein Element des vectors storages zu. Dieses ist ein primitiver Datentyp und über einen solchen(einzelnen) kannst du ja schlecht drüber iterieren. Ein primitiver Datentyp hat ja schließlich keine Iterator-Memberfunktion "begin()".
e: der Code war ein Einzeiler, natürlich darf man Edge-Cases nicht vergessen usw.
Wäre eine mögliche Lösung, da gibt er es ja von jedem aus.
Du greifst mit deinem Index auf ein Element des vectors storages zu. Dieses ist ein primitiver Datentyp und über einen solchen(einzelnen) kannst du ja schlecht drüber iterieren. Ein primitiver Datentyp hat ja schließlich keine Iterator-Memberfunktion "begin()".
e: der Code war ein Einzeiler, natürlich darf man Edge-Cases nicht vergessen usw.
Hätte ich im Buch eine Seite weiter geblättert, hätte ich mir die Frage auch sparen können. :S
PC schaltet sich nicht aus. 03/07/2015 - Technical Support - 14 Replies Hi Leute :)
Hab folgendes Problem.
Wenn ich meinen Computer herunterfahre, fährt er auch runter ganz normal. Aber der Rechner läuft weiter und am Bildschirm steht dann "no Signal" das macht er aber nur wenn er länger läuft.
Wenn ich den PC gleich nacht dem hochfahren runterfahre, schaltet er sich auch ab.
Ich hoffe ihr könnt mir helfen :)
League of Legends - Riot Games schaltet Public-Chat-Funktion ab 07/06/2014 - User Submitted News - 2 Replies https://signup.oce.leagueoflegends.com/bundles/rio tsignup/img/signup_logo2_clean.png?v1
Riot Games hat die Public-Chat-Rooms in seinem Multiplayer-Titel League of Legends abgeschaltet. Grund dafür sei die aktuelle Flut an Spammern, Scammern und Verkäufern von In-Game-Währung. Das Feature soll nun grundlegend überarbeitet werden.
Bei Riot Games hat man offenbar die Nase voll von Scammern, Spammern und Verkäufern der In-Game-Währung Riot Points: Wie das Entwicklerstudio in einer...
Pc schaltet sich nicht mehr ein 09/16/2013 - Hardware Discussions / Questions - 2 Replies Hab meinen alten PC(die teile etc) in ein neues Gehäuse einbauen + Neues Netzteil + Neue Graka.
Ich glaube es scheitert bei der Verkabelung kenn mich da nich so aus hab das Sharkoon t28( es sind die Gehäuselüfter nich angeschlossen weiss nicht wohin mit den 3-6 4Pin Stecker) oder ich weiß nicht wohin ich die HDD LED power switch etc einstecken soll, < Hab gegoogelt muss an nen Fronpanel stecker nur meiner sieht nicht so aus wie bei den Bild hier...
Mainboard Schaltet nicht aus. 01/29/2013 - Technical Support - 11 Replies Guten Tag,
Ich habe seid dem ich das mainboard von meinen Vater bekommen hab,
Folgendes Problem: :mad:
Wenn ich Meinen Pc Herunterfahre Bleibt das mainboard Dennoch an und muss es dann mit gedrückthalten von dem "anmach" Knopf ausschalten.
Wie kann ich es Reparieren?
Hoffe Mir kann jemand helfen ;)
Rechner schaltet sich nicht ein?! 11/05/2011 - Technical Support - 12 Replies Hallo com,
heute wollte ich meinen Rechner einschalten aber es passierte gar nichts. Gestern hat er noch prima funktioniert. Meine Mutter hat abgestaubt und hat dann ein bisschen drauf gehauen. Aber glaub nicht das es damit zu tun hat. Und drinnen leuchtet ein grünes Licht, also glaub ich nicht das es etwas mit der Stromversorgung zu tun hat. Wollte fragen ob ich etwas machen kann weil nämlich meine Garantie schon abgelaufen ist?
Und wie viel würde das kosten?
Der Rechner ist 3-4 Jahre alt....