gpt4 book ai didi

c++ back_insert 使用错误,

转载 作者:行者123 更新时间:2023-11-28 02:51:12 24 4
gpt4 key购买 nike

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
vector<int> square_vec(const vector<int>& v)
{
vector<int> result;
result.reserve(v.size());
back_insert_iterator< std::vector<int>> back_it (result);
transform(v.begin(), v.end(), back_it, [](int i)
{
return i*i;
});
return result;
}

int main() {
vector<int> my_vec = {1 ,2,3,4,5,6,7,8,9,10};
vector<int> result_vec;
result_vec = square_vec(my_vec);
return 0;
}

我遇到了这样的错误,尝试了不同的方法。还没有工作。请帮忙。谢谢!

test_transform.cpp: In function ‘std::vector<int, std::allocator<int> > square_vec(const std::vector<int, std::allocator<int> >&)’:
test_transform.cpp:10: error: expected primary-expression before ‘[’ token
test_transform.cpp:10: error: expected primary-expression before ‘]’ token
test_transform.cpp:10: error: expected primary-expression before ‘int’

我的 g++ 是 4.4.7-4然后我尝试了 4.8.1 它有效。谢谢大家。

最佳答案

应要求,回答题目:

您的编译器不支持 Lambda 表达式。您看到的错误以第 10 行的方括号 [] 开头。(@Daniel)

尝试更改您的编译器以查看是否有帮助 - 您的编译器必须支持 C++11。

关于c++ back_insert 使用错误,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23014777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com