1

这是我的代码,它逐个字符串读取而不是读取一行并将其存储在 1D 向量而不是 2D 中。我想将每一行存储在数组的第一维中,然后将该行中的每个元素存储在数组的第二维中。

std::ifstream fin("triangulation#4.tri");
std::vector<std::string> vec;

//input from file
std::copy(std::istream_iterator<std::string>(fin), std::istream_iterator<std::string>(), std::back_inserter(vec));
4

1 回答 1

0

我不确定你是否坚持从文件中读取行或如何填充 2d 矢量,所以我给你两个,而不是偷你自己完成事情的成功我把它们分开(如果你有这个代码,因为你正在学习,所以你会记住的)。该代码片段运行良好。

这适用于 Linux 以将文件逐行读入向量。

string dir = string("."); //dir read for string puzzle
  vector<string> files = vector<string>(); //dir read
      getdir(dir,files);                     //dir read
           for (unsigned int i = 0;i < files.size();i++) //files of parent DIR gets red into array/Vector
           {
             if (files[i].find(filter) != string::npos)   
             {
                               string out = files[i];

             }
           }

这是初始化一个二维向量:

vector < vector < size_t > > > _card_deck;  

这是一种用字符串填充它的方法:

for(size_t playnum = 0; playnum < players; ++playnum)
  {
        vector < vector < size_t > > d1;
        _card_deck.push_back( d1 );

        for(size_t color = 0; color < 4; color++)
            {
            vector < size_t > d2;
                    _card_deck[playnum].push_back( d2 );
            }
   }
于 2019-12-01T18:15:37.943 回答