Во-первых, вы не должны называть свою переменную vector
. Дайте ему имя, которое не является именем класса из стандартной библиотеки.
Во-вторых, ostream_iterator
добавит ','
даже после того, как последний элемент вектора, который не может быть то, что вы хотите (разделитель должен быть сепаратор, и нет ничего, чтобы отделить последнее значение вектора из дальнейшее значение).
В C++ 11, вы можете использовать простой диапазон на основе for
цикла:
outputFile << "GLfloat vector[]={";
auto first = true;
for (float f : v)
{
if (!first) { outputFile << ","; }
first = false;
outputFile << f;
}
outputFile << "}" << endl;
В C++ 03, он будет просто немного более многословен:
outputFile << "GLfloat vector[]={";
auto first = true;
for (vector<float>::iterator i = v.begin(); i != end(); ++i)
{
if (!first) { outputFile << ","; c++; }
first = false;
outputFile << *i;
}
outputFile << "}" << endl;
было бы здорово получить объяснение что вы сделали, в дополнение к коду. – dbliss