#include <iostream>
#include <vector>
#include <string>
using namespace std;

class StringBuilder {
    vector<string> _buffer;

    StringBuilder() {
//        this._buffer = new List();
    }

    public:
    StringBuilder append(string text) {
        _buffer.push_back(text);
        return *this;
    }
/*
    StringBuilder insert(index, text) {
        _buffer.insert(index, text);
        return *this;
    }

    int length() {
        return toString().length();
    }

    StringBuilder deleteCharAt(index) {
        var str = this.toString();
        this._buffer = new List();
        append(str.substring(0, index));
        return this;
    }

    String toString() {
        return _buffer.join("");
    }
*/
};

int main(){
    vector<string> strings;
    strings.push_back("string 1");
    strings.push_back("string 2");
    vector<string>::const_iterator strIter;
    string result("");
    for (strIter=strings.begin(); strIter!=strings.end(); strIter++) {
        cout << *strIter << endl;
        result = result + *strIter;
    }
    cout << "Basic list programm!" << endl;
    cout << "Together: " << result << endl;
    return 0;
}

#include <iostream>
#include <vector>
#include <string>
using namespace std;

class StringBuilder {
    vector<string> _buffer;

    public:
    StringBuilder() {
    }

    StringBuilder append(string text) {
        _buffer.push_back(text);
        return *this;
    }

    StringBuilder insert(int index, string text) {
        _buffer.insert(_buffer.begin() + index, text);
        return *this;
    }

    int length() {
        return toString().length();
    }

    StringBuilder deleteCharAt(int index) {
        string str = toString();
        _buffer.clear();
        append(str.substr(0, index));
        return *this;
    }

    string toString() {
        string result("");
        for (vector<string>::const_iterator strIter = _buffer.begin(); strIter != _buffer.end(); strIter++) {
            result = result + *strIter;
        }
        return result;
    }
};

class MoneyToStr {
    public:
    MoneyToStr(string currency, string language, string pennies) {
        if (currency == "") {
            throw std::invalid_argument("currency is null");
        }
        if (language == "") {
            throw std::invalid_argument("language is null");
        }
        if (pennies == "") {
            throw std::invalid_argument("pennies is null");
        }
    }
};

int main(int argc, char *argv[]) {
    string amount = "123.25";
    string language = "ENG";
    string currency = "USD";
    string pennies = "TEXT";
    if (argc == 1) {
        cout << "Usage: MoneyToStr --amount=123.25 --language=rus|ukr|eng --currency=rur|uah|usd --pennies=text|number" << endl;
    }
    return 0;
}

Improve c++ version of thr converter
Improve c++ version of thr converter
