C++ 遍历c+中的向量数组+;

C++ 遍历c+中的向量数组+;,c++,vector,iterator,C++,Vector,Iterator,我试图迭代我的向量数组,但我似乎无法使它工作,我的错误在第二个for循环,错误消息如下: “double”之前应为主表达式 我已经详细介绍了如何迭代正则向量,但是如何迭代向量数组呢? 我遵循这个结构: #include <iostream> #include <vector> int main () { std::vector<int> myvector; for (int i=1; i<=5; i++) myvector.push_back(

我试图迭代我的向量数组,但我似乎无法使它工作,我的错误在第二个for循环,错误消息如下:

“double”之前应为主表达式

我已经详细介绍了如何迭代正则向量,但是如何迭代向量数组呢? 我遵循这个结构:

#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;
}
#包括
#包括
int main()
{
std::vector myvector;
对于(int i=1;i
#包括
#包括
#包括
使用std::ifstream;
使用std::vector;
使用std::cout;
int main(int弧,字符*argv[]
{
常数大小数据大小=7;
ifstream-infle(“data.txt”);
矢量输入;
双数;

而((infle>>num)&&(input.size()您可以像这样简单地遍历数组向量
for(inti=0;i在这行代码上

for(vector<double>::iterator it = vector[i].begin(); it != vector[i].end(); ++it)


但是一个更好的解决方案是不要对多个不同的事物使用相同的名称。

vector my_vector[7];
尽量避免
使用命名空间std来防止这种情况发生。调用向量变量“vector”这不是一个好主意。给它一个没有被拿走的名字,问题就消失了。对于每个向量,你只推一个数字,那就是你真正想要的吗?即7个向量,用于7个加倍。@ beta,在把“vector”改为“V”之后,它做了这个把戏。谢谢。我甚至没有考虑到,这就像是做int int=5。C++ 11代码<(双d:v)//stuff;
ftw“不要以标准库函数、类、结构命名变量”-为什么?因为标准库使用了大量名称(其中许多是非常通用的名称),这个建议是非常适得其反的。你认为名称空间是干什么用的?@ChristianRau:我知道名称空间有效地隐藏了这些名称,但当使用完全相同的名称时,可读性会受到影响。这也许是我们看到自定义编写的向量具有像EAVector等名称的原因,这些名称带有前缀以区别于standard容器。对于偶数类,当1000个loc时,与其类同名的变量更容易混淆。
#include <iostream>
#include <fstream>
#include <vector>

using std::ifstream;
using std::vector;
using std::cout;

int main(int arc, char *argv[])
{
   const size_t data_size = 7;
   ifstream infile("data.txt"); 
   vector<double> input;
   double num;
   while ((infile >> num) && (input.size() <= data_size))
   {
      input.push_back(num);
   }
   for (vector<double>::iterator it = input.begin(); it != input.end(); ++it)
   {
      cout << ' ' << *it;
   }
   return 0;
}
for(vector<double>::iterator it = vector[i].begin(); it != vector[i].end(); ++it)
for(::std::vector<double>::iterator it = vector[i].begin(); it != vector[i].end(); ++it)
for(auto it = vector[i].begin(); it != vector[i].end(); ++it)