动态字符串数组c ++

时间:2013-03-18 11:13:32

标签: c++ arrays dynamic

我创建了一个固定的长度字符串:

string fileRows[900];

但有时我需要超过900,有时它足够500.

然后我需要用文件行填充数组:

...
    string sIn;
    int i = 1;

    ifstream infile;
    infile.open(szFileName);
    infile.seekg(0,ios::beg);

    while ( getline(infile,sIn ) ) // 0. elembe kiterjesztés
    {
        fileRows[i] = sIn;
        i++;
    }

如何为此阵列创建动态长度?

1 个答案:

答案 0 :(得分:2)

使用std::vector,vector称为动态数组:

#include <vector>
#include <string>

std::vector<std::string> fileRows(900);

实际上你可以保留元素的空间并调用push_back

std::vector<std::string> fileRows;
fileRows.reserve(900);   

while (std::getline(infile, sIn))
{
   fileRows.push_back(sIn);
}