int to size_t for indices

master
Benjamin Kraft 2 years ago
parent 735deb44bf
commit 20eec50236
  1. 12
      src/days/05/Day05.cpp
  2. 2
      src/days/05/Day05.h

@ -45,13 +45,13 @@ Result Day05::Task2() {
vector<Stack> Day05::parseStacks(){
vector<Stack> parsed;
int endIndex = splitIndex();
size_t endIndex = splitIndex();
string numberLine = input[endIndex - 1];
int stackCount = atoi(&numberLine.at(numberLine.size() - 2));
for (int i = 0; i < stackCount; i++){
parsed.emplace_back();
int index = 1 + 4 * i;
for (int line = endIndex - 2; line >= 0 && input[line].size() > index && input[line][index] != ' '; line--){
for (size_t line = endIndex - 2; input[line].size() > index && input[line][index] != ' '; line--){
Crate crate = input[line][index];
parsed[i].push_back(crate);
}
@ -63,9 +63,9 @@ vector<Stack> Day05::parseStacks(){
vector<Move> Day05::parseMoves() {
vector<Move> parsed;
int startIndex = splitIndex() + 1;
size_t startIndex = splitIndex() + 1;
for (int i = startIndex; i < input.size(); i++){
for (size_t i = startIndex; i < input.size(); i++){
string line = input[i];
size_t fromIndex = line.find(" from");
int count = stoi(line.substr(5, fromIndex - 5));
@ -77,8 +77,8 @@ vector<Move> Day05::parseMoves() {
return parsed;
}
int Day05::splitIndex(){
auto iter = std::find_if(input.begin(), input.end(), [](const string& element){return element == "";});
size_t Day05::splitIndex(){
auto iter = std::find_if(input.begin(), input.end(), [](const string& element){return element.empty();});
return iter - input.begin();
}

@ -12,7 +12,7 @@ protected:
Result Task2() override;
int splitIndex();
size_t splitIndex();
vector<Stack> parseStacks();
vector<Move> parseMoves();
};
Loading…
Cancel
Save