Я пытаюсь перебирать мой векторный массив, но я не могу заставить его работать, моя ошибка на второй цикл, и сообщение об ошибке является продолжение:итерации через массив вектора в C++
ожидается первичное выражением перед «двойными»
Я просмотрел о том, как итерации регулярного вектора, но как итератор векторного массива? Я следовал этой структуры:
#include <iostream>
#include <vector>
int main()
{
std::vector<int> myvector;
for (int i=1; i<=5; i++) myvector.push_back(i);
std::cout << "myvector contains:";
for (std::vector<int>::iterator it = myvector.begin() ; it != myvector.end(); ++it)
std::cout << ' ' << *it;
std::cout << '\n';
return 0;
}
Я не могу показаться, чтобы получить мой векторный вариант массива работать.
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main(int arc, char *argv[])
{
vector<double> vector[7];
double num[7];
ifstream infile("data.txt");
string temp;
for(int i = 0; i <= 6; i++)
{
infile >> temp;
cout << temp << ' ';
}
cout << endl;
while(infile >> num[0] >> num[1] >> num[2] >> num[3] >> num[4] >> num[5] >> num[6])
{
for(int i = 0; i <= 6; i++)
{
vector[i].push_back(num[i]);
}
}
cout << endl;
for(int i = 0; i <= 6; i++)
{
// error on this line
// not sure what is wrong before vector<double>:: iterator it = vector[i].begin()
for(vector<double>::iterator it = vector[i].begin(); it != vector[i].end(); ++it)
{
cout << ' ' << *it;
}
}
return 0;
}
'vector my_vector [7];' Попытайтесь избежать использования пространства имен std', чтобы это не происходило. –
perreal
Вызов векторной переменной «вектор» - это * не * хорошая идея. Дайте ему имя, которое не будет принято, и проблема исчезнет. – Beta
Также для каждого вектора вы отбрасываете только одно число, это то, что вы действительно хотите? т. е. 7 векторов для 7 удвоений. – legends2k