In c++. Please need rescurive arrays such as in picture from level 0 to level 1 to level 2. split into recursive functions. Using argumentmanger.h. here it is. #include #include #include #include using namespace std; // This is a class that can parse the commnad line arguments we use in COSC 2430 homework. class ArgumentManager { private: map m_argumentMap; public: ArgumentManager() { } ArgumentManager(int argc, char *argv[], char delimiter=';'); ArgumentManager(string rawArguments, char delimiter=';'); void parse(int argc,char*argv[],char delimiter=';'); void parse(string rawArguments,char delimiter=';'); string get(string argumentName); string toString(); friend ostream&operator<<(ostream &out, ArgumentManager &am); }; void ArgumentManager::parse(string rawArguments, char delimiter) { stringstream currentArgumentName; stringstream currentArgumentValue; bool argumentNameFinished =false; for(unsignedint i=0; i<=rawArguments.length(); i++){ if(i == rawArguments.length()|| rawArguments[i]== delimiter){ if(currentArgumentName.str()!=""){ m_argumentMap[currentArgumentName.str()] = currentArgumentValue.str(); } // reset currentArgumentName.str(""); currentArgumentValue.str(""); argumentNameFinished = false; } elseif(rawArguments[i]=='='){ argumentNameFinished = true; } else{ if(argumentNameFinished){ currentArgumentValue << rawArguments[i]; } else{ // ignore any spaces in argument names. if(rawArguments[i]==' ') continue; currentArgumentName << rawArguments[i]; } } } } void ArgumentManager::parse(int argc, char *argv[], char delimiter) { if(argc >1){ for(int i=1; i::iterator iter = m_argumentMap.find(argumentName); //If the argument is not found, return a blank string. if(iter == m_argumentMap.end()){ return""; } else{ return iter->second; } } string ArgumentManager::toString() { stringstream ss; for(map::iterator iter = m_argumentMap.begin(); iter != m_argumentMap.end(); iter++){ ss << "Argument name: " << iter->first << endl; ss << "Argument value: " << iter->second << endl; } return ss.str(); } ostream& operator << (ostream &out, ArgumentManager &am) { out << am.toString(); return out; }
In c++. Please need rescurive arrays such as in picture from level 0 to level 1 to level 2. split into recursive functions. Using argumentmanger.h. here it is. #include #include #include #include using namespace std; // This is a class that can parse the commnad line arguments we use in COSC 2430 homework. class ArgumentManager { private: map m_argumentMap; public: ArgumentManager() { } ArgumentManager(int argc, char *argv[], char delimiter=';'); ArgumentManager(string rawArguments, char delimiter=';'); void parse(int argc,char*argv[],char delimiter=';'); void parse(string rawArguments,char delimiter=';'); string get(string argumentName); string toString(); friend ostream&operator<<(ostream &out, ArgumentManager &am); }; void ArgumentManager::parse(string rawArguments, char delimiter) { stringstream currentArgumentName; stringstream currentArgumentValue; bool argumentNameFinished =false; for(unsignedint i=0; i<=rawArguments.length(); i++){ if(i == rawArguments.length()|| rawArguments[i]== delimiter){ if(currentArgumentName.str()!=""){ m_argumentMap[currentArgumentName.str()] = currentArgumentValue.str(); } // reset currentArgumentName.str(""); currentArgumentValue.str(""); argumentNameFinished = false; } elseif(rawArguments[i]=='='){ argumentNameFinished = true; } else{ if(argumentNameFinished){ currentArgumentValue << rawArguments[i]; } else{ // ignore any spaces in argument names. if(rawArguments[i]==' ') continue; currentArgumentName << rawArguments[i]; } } } } void ArgumentManager::parse(int argc, char *argv[], char delimiter) { if(argc >1){ for(int i=1; i::iterator iter = m_argumentMap.find(argumentName); //If the argument is not found, return a blank string. if(iter == m_argumentMap.end()){ return""; } else{ return iter->second; } } string ArgumentManager::toString() { stringstream ss; for(map::iterator iter = m_argumentMap.begin(); iter != m_argumentMap.end(); iter++){ ss << "Argument name: " << iter->first << endl; ss << "Argument value: " << iter->second << endl; } return ss.str(); } ostream& operator << (ostream &out, ArgumentManager &am) { out << am.toString(); return out; }
Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
Related questions
Question
In c++. Please need rescurive arrays such as in picture from level 0 to level 1 to level 2. split into recursive functions. Using argumentmanger.h. here it is.
#include <map>
#include <string>
#include <iostream>
#include <sstream>
using namespace std;
// This is a class that can parse the commnad line arguments we use in COSC 2430 homework.
class ArgumentManager {
private:
map<string, string> m_argumentMap;
public:
ArgumentManager() { }
ArgumentManager(int argc, char *argv[], char delimiter=';');
ArgumentManager(string rawArguments, char delimiter=';');
void parse(int argc,char*argv[],char delimiter=';');
void parse(string rawArguments,char delimiter=';');
string get(string argumentName);
string toString();
friend ostream&operator<<(ostream &out, ArgumentManager &am);
};
void ArgumentManager::parse(string rawArguments, char delimiter) {
stringstream currentArgumentName;
stringstream currentArgumentValue;
bool argumentNameFinished =false;
for(unsignedint i=0; i<=rawArguments.length(); i++){
if(i == rawArguments.length()|| rawArguments[i]== delimiter){
if(currentArgumentName.str()!=""){
m_argumentMap[currentArgumentName.str()] = currentArgumentValue.str();
}
// reset
currentArgumentName.str("");
currentArgumentValue.str("");
argumentNameFinished = false;
}
elseif(rawArguments[i]=='='){
argumentNameFinished = true;
}
else{
if(argumentNameFinished){
currentArgumentValue << rawArguments[i];
}
else{
// ignore any spaces in argument names.
if(rawArguments[i]==' ')
continue;
currentArgumentName << rawArguments[i];
}
}
}
}
void ArgumentManager::parse(int argc, char *argv[], char delimiter) {
if(argc >1){
for(int i=1; i<argc; i++){
parse(argv[i], delimiter);
}
}
}
ArgumentManager::ArgumentManager(int argc, char *argv[], char delimiter) {
parse(argc, argv, delimiter);
}
ArgumentManager::ArgumentManager(string rawArguments, char delimiter) {
parse(rawArguments, delimiter);
}
string ArgumentManager::get(string argumentName) {
map<string, string>::iterator iter = m_argumentMap.find(argumentName);
//If the argument is not found, return a blank string.
if(iter == m_argumentMap.end()){
return"";
}
else{
return iter->second;
}
}
string ArgumentManager::toString() {
stringstream ss;
for(map<string, string>::iterator iter = m_argumentMap.begin(); iter != m_argumentMap.end(); iter++){
ss << "Argument name: " << iter->first << endl;
ss << "Argument value: " << iter->second << endl;
}
return ss.str();
}
ostream& operator << (ostream &out, ArgumentManager &am) {
out << am.toString();
return out;
}
Expert Solution
This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
This is a popular solution!
Trending now
This is a popular solution!
Step by step
Solved in 2 steps with 4 images
Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Recommended textbooks for you
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education