std::copy 函数的坑

#include
#include
#include
#include
#include
#include

using namespace std;

void print(vector &v);

int main() {
    ifstream inFS;
    inFS.open("sentence.txt");

    if (!inFS) {
        perror("open");
        return -1;
    }

    vector wordList, newVect;
    string s;
    while (inFS >> s) {
        wordList.push_back(s);
    }
    //newVect.resize(wordList.size());
    copy(wordList.begin(), wordList.end(), newVect.begin());
    print(wordList);
    print(newVect);
}


void print(vector &v) {
    for (vector::iterator i = v.begin(); i != v.end(); i++) {
        cout << *i << " ";
    }
    cout << endl;
}

无意中看到stackoverflow上的问题,才发现copy函数的实现不会去分配空间,所以需要resize以下。(原来stackoverflow上也会有这种简单的问题)

你可能感兴趣的:(std::copy 函数的坑)