如何在c ++中向数组添加元素?

时间:2015-09-14 22:08:05

标签: c++ arrays c++11

假设我有足够的空间,我如何向数组中添加元素?我的代码看起来像这样:

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main(){
    ofstream out("hi.out");
    ifstream in("hi.in");
    string currentLine;
    string values[135];/*Enough for worst case scenario*/
    if (out.is_open && in.isopen()){
        while (in >> currentLine){
            /*Add currentLine to values*/
        }
        /*Do stuff with values and write to hi.out*/
    }
    out.close()
    in.close()
    return 0;
}

2 个答案:

答案 0 :(得分:4)

无需自己编写循环。使用您的数组:

auto l = std::copy(std::istream_iterator<std::string>(in), {}, values);

l - values是读取的字符串数。

或者甚至更好,使用矢量,这样您就不必担心最糟糕情况的可能性&#34;不是最糟糕的情况。

std::vector<std::string> values(std::istream_iterator<std::string>(in), {});

答案 1 :(得分:1)

您可以使用索引计数器变量:

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main(){
    ofstream out("hi.out");
    ifstream in("hi.in");
    string currentLine;
    string values[135];/*Enough for worst case scenario*/
    int index = 0;
    if (out.is_open && in.isopen()){
        while (in >> currentLine){
            /*Add currentLine to values*/
            values[index++] = currentLine;
        }
        /*Do stuff with values and write to hi.out*/
    }
    out.close()
    in.close()
    return 0;
}

变量index,一旦循环完成,将包含数组中的字符串数。