鱼C论坛

 找回密码
 立即注册
查看: 2525|回复: 1

[已解决]c++STL transform函数报错,求解

[复制链接]
发表于 2019-4-6 18:16:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include <iostream>
  2. #include <string>
  3. #include "vector"
  4. #include "algorithm"
  5. using namespace std;

  6. template<typename T>
  7. class SumAdd
  8. {
  9. public:
  10.         T operator()(T t1, T t2)
  11.         {
  12.                 return (t1 + t2);
  13.         }
  14. private:
  15. };

  16. int main()
  17. {
  18.         vector<int> v1, v2;
  19.         vector<int> v3;
  20.         v1.push_back(1);
  21.         v1.push_back(2);
  22.         v1.push_back(3);


  23.         v2.push_back(5);
  24.         v2.push_back(6);
  25.         v2.push_back(7);


  26.         transform(v1.begin(), v1.end(), v2.begin(), v3.begin(), SumAdd<int>());

  27.         for (vector<int>::iterator it = v3.begin(); it != v3.end(); it++)
  28.         {
  29.                 cout << *it << endl;
  30.         }
  31.         system("pause");
  32.         return 0;
  33. }
复制代码

编译器是vs2017.
最佳答案
2019-4-6 18:39:52
  1. #include <iostream>
  2. #include <string>
  3. #include "vector"
  4. #include "algorithm"
  5. using namespace std;

  6. template<typename T>
  7. class SumAdd
  8. {
  9. public:
  10.         T operator()(T t1, T t2)
  11.         {
  12.                 return (t1 + t2);
  13.         }
  14. private:
  15. };

  16. int main()
  17. {
  18.         vector<int> v1, v2;
  19.         vector<int> v3(3);
  20.         v1.push_back(1);
  21.         v1.push_back(2);
  22.         v1.push_back(3);


  23.         v2.push_back(5);
  24.         v2.push_back(6);
  25.         v2.push_back(7);


  26.         transform(v1.begin(), v1.end(), v2.begin(), v3.begin(), SumAdd<int>());

  27.         for(vector<int>::iterator it = v3.begin(); it != v3.end(); it++)
  28.         {
  29.                 cout << *it << endl;
  30.         }
  31.         system("pause");
  32.         return 0;
  33. }
复制代码

  1. vector<int> v3(3);
复制代码
无标题.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-4-6 18:39:52 | 显示全部楼层    本楼为最佳答案   
  1. #include <iostream>
  2. #include <string>
  3. #include "vector"
  4. #include "algorithm"
  5. using namespace std;

  6. template<typename T>
  7. class SumAdd
  8. {
  9. public:
  10.         T operator()(T t1, T t2)
  11.         {
  12.                 return (t1 + t2);
  13.         }
  14. private:
  15. };

  16. int main()
  17. {
  18.         vector<int> v1, v2;
  19.         vector<int> v3(3);
  20.         v1.push_back(1);
  21.         v1.push_back(2);
  22.         v1.push_back(3);


  23.         v2.push_back(5);
  24.         v2.push_back(6);
  25.         v2.push_back(7);


  26.         transform(v1.begin(), v1.end(), v2.begin(), v3.begin(), SumAdd<int>());

  27.         for(vector<int>::iterator it = v3.begin(); it != v3.end(); it++)
  28.         {
  29.                 cout << *it << endl;
  30.         }
  31.         system("pause");
  32.         return 0;
  33. }
复制代码

  1. vector<int> v3(3);
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-5 18:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表