Спасибо за ответы, я попробовал, но у меня получилось только с QString
А вот с обыцным STL не получается вообще собрать контейнер vector со строками((
Написал программу - аналог Linux`овского tac (выводит строки с последней к первой).
ошибка в коде:
/home/pavel/programming/analog_tac/main.cpp:35: ошибка: no matching function for call to 'std::vector<std::__cxx11::basic_string<char> >::end(std::__cxx11::string&)'
for(string it = lines.end(line); it == lines.begin(line); it.end(line)--){ /* Выводим строки задом-наперёд */
Вот такой код:
#include <QCoreApplication>
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <iterator>
#include <vector>
#include <string>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
if (argc > 1) /* проверка есть ли хотя бы 1-н аргумент*/
{
cout << argv[1] << endl;
} else {
cout << "Not arguments" << endl;
}
string line;
vector<string> lines;
ifstream file(argv[1]);
while(getline(file, line)){ /* пока не достигнут конец файла класть очередную строку в переменную */
lines.push_back(line);
}
// for(string line = lines.end(); line >= lines.begin(); line.end()--){ /* Выводим строки задом-наперёд */
// cout << line << endl;
// }
// !!!через итераторы не получилось((!!!
for(string it = lines.end(line); it == lines.begin(line); it.end(line)--){ /* Выводим строки задом-наперёд */
cout << line << endl;
}
return 0;
}
Подскажите, пожалуйста - почему он меня не понимает?