当使用transform函数时要注意给目标容器指定大小,否则程序会崩溃
以下为错误代码
void test02() {
vector<int> v;
for (int i = 0; i < 10; ++i) {
v.push_back(i);
}
vector<int> target;//错误,未给target容器指定大小
transform(v.begin(), v.end(), target.begin(), Transfrom());
for_each(target.begin(), target.end(), myPrint);
}
正确为:
void test02() {
vector<int> v;
for (int i = 0; i < 10; ++i) {
v.push_back(i);
}
vector<int> target;
target.resize(v.size());//给target指定了空间
transform(v.begin(), v.end(), target.begin(), Transfrom());
for_each(target.begin(), target.end(), myPrint);
}