need help in vectors

doforumda's Avatar, Join Date: Mar 2011
Newbie Member
hi I am trying to read text from text file and put it in a vector v1. then I copy text from v1 to another vector v2.
my text file is in this format
Student Name One
Father Name of Student One


Student name Two
Father name of Student Two


Student Name three
Father Name of Student three


Student name four
Father name of Student four
so while writing text to v2 from v1 I dont want to write "studentName", FatherName and separator. I do not want to write these because these are my separators. I just want to write student name one, father name of student one and so on.

here is my code so far
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <fstream>
using namespace std;

int main()
	vector<string> v1;
	vector<string> v2;
	string line;

	ifstream in("names.txt", ios::in);
	while(!in.eof()) {
		getline(in, line);
	//cout << v1.size();
	copy(v1.begin(), v1.end(), v2.begin());
	int ii;
	for(ii = 0; ii < v2.size(); ii++) {
		cout << v2[ii];
	return 0;
while running the above code it also displays this error

Debug assertion failed
Expression: vector iterator + offset out of range
Please help how can I achieve above solution?
Targen's Avatar, Join Date: Mar 2011
Newbie Member
Hello. First thing, the error you get is from the copy() function you use to make v2 equal to v1. The simple way to fix this is to remove that and instead use an equals sign:

v2 = v1;

That gets rid of the error. Now, for the lines of text you do not want to display, I could only think of one way to do so, and there may be a better way, but this does work. All you would have to do is have an if statement under the line:

getline(in, line);

This if statement would pretty much just say, if line contains "studentName", "FatherName", or "separator", continue (literally, use a continue statement). Else, push line onto vector.

To me, that is the simplest way to achieve the solution you want. Other than just removing studentName, FatherName, and separator from the text file. But I assume you can't do that. Anyway, I hope this helped.

Oh, and you might want to close the text file at the end of your code also. I'm not sure if you just hadn't gotten to that yet, but it wasn't in your code, so I thought I'd mention it.

Kurt Bales
UAT Student
shabbir like this