vector模板的一点问题

qq_35875027 2017-11-15 05:03:58
自己练习写了个vec模板,有个函数一直出问题,哪里有问题啊
template <typename T>
class vec
{ ...
friend vec<T> operator+ <T>(const vec<T> &,const vec<T> &);
private:
iterator m_start;
iterator m_finished;
iterator m_limit;
allocator<T> alloc; //用作分配动态地址
};
template <typename T> vec<T> operator+(const vec<T> &v1,const vec<T> &v2)//两个vec连接起来
{
vec<T> v;
auto data=v.alloc.allocate(v1.size()+v2.size());
auto enu=uninitialized_copy(v1.begin(),v1.end(),data);
enu=uninitialized_copy(v2.begin(),v2.end(),enu);
v.m_start=data;
v.m_finished=v.m_limit=enu;
return v;
}
编译会有问题,坐等大佬
...全文
349 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
CT8100 2017-11-16
  • 打赏
  • 举报
回复
不是写的很明确么。。。 error: no type named ‘iterator_category’ in ‘struct std::iterator_
开源学开源 2017-11-16
  • 打赏
  • 举报
回复
不是去掉类里面头三点就可以编译成功了么?
开心秋水 2017-11-16
  • 打赏
  • 举报
回复
忘掉模板吧,对于很多人来说太复杂而且并非不可替代
qq_35875027 2017-11-15
  • 打赏
  • 举报
回复
引用 3 楼 hdt 的回复:
我想说的是,如果C++的语法还没有学习好,最好不要涉及模板
能告诉我哪里有问题吗大佬
真相重于对错 2017-11-15
  • 打赏
  • 举报
回复
我想说的是,如果C++的语法还没有学习好,最好不要涉及模板
qq_35875027 2017-11-15
  • 打赏
  • 举报
回复
g++ main.cpp -o main -std=c++11 In file included from /usr/include/c++/5/bits/stl_algobase.h:67:0, from /usr/include/c++/5/bits/char_traits.h:39, from /usr/include/c++/5/ios:40, from /usr/include/c++/5/ostream:38, from /usr/include/c++/5/iostream:39, from v.h:3, from main.cpp:1: /usr/include/c++/5/bits/stl_iterator.h: In instantiation of ‘class std::reverse_iterator<std::__cxx11::basic_string<char> >’: /usr/include/c++/5/bits/stl_iterator.h:334:5: required by substitution of ‘template<class _Iterator> std::reverse_iterator<_Iterator> std::operator+(typename std::reverse_iterator<_Iterator>::difference_type, const std::reverse_iterator<_Iterator>&) [with _Iterator = std::__cxx11::basic_string<char>]’ v.h:32:19: required from ‘class vec<std::__cxx11::basic_string<char> >’ main.cpp:4:18: required from here /usr/include/c++/5/bits/stl_iterator.h:97:11: error: no type named ‘iterator_category’ in ‘struct std::iterator_traits<std::__cxx11::basic_string<char> >’ class reverse_iterator ^ /usr/include/c++/5/bits/stl_iterator.h:111:55: error: no type named ‘difference_type’ in ‘struct std::iterator_traits<std::__cxx11::basic_string<char> >’ typedef typename __traits_type::difference_type difference_type; ^ /usr/include/c++/5/bits/stl_iterator.h:112:48: error: no type named ‘pointer’ in ‘struct std::iterator_traits<std::__cxx11::basic_string<char> >’ typedef typename __traits_type::pointer pointer; ^ /usr/include/c++/5/bits/stl_iterator.h:113:50: error: no type named ‘reference’ in ‘struct std::iterator_traits<std::__cxx11::basic_string<char> >’ typedef typename __traits_type::reference reference; ^ /usr/include/c++/5/bits/stl_iterator.h: In instantiation of ‘class std::move_iterator<std::__cxx11::basic_string<char> >’: /usr/include/c++/5/bits/stl_iterator.h:1152:5: required by substitution of ‘template<class _Iterator> std::move_iterator<_Iterator> std::operator+(typename std::move_iterator<_Iterator>::difference_type, const std::move_iterator<_Iterator>&) [with _Iterator = std::__cxx11::basic_string<char>]’ v.h:32:19: required from ‘class vec<std::__cxx11::basic_string<char> >’ main.cpp:4:18: required from here /usr/include/c++/5/bits/stl_iterator.h:965:50: error: no type named ‘reference’ in ‘struct std::iterator_traits<std::__cxx11::basic_string<char> >’ typedef typename __traits_type::reference __base_ref;
FoolCarpe 2017-11-15
  • 打赏
  • 举报
回复
报的啥错
内容概要:本文围绕“面向高精度电流控制的PMSM多参数PSO辨识模型研究”,系统阐述了基于Simulink的永磁同步电机(PMSM)多参数辨识方法,重点采用粒子群优化算法(PSO)实现对电机关键内部参数的高精度辨识。研究构建了完整的PMSM控制系统仿真模型,结合智能优化算法,解决了传统参数辨识中精度低、收敛慢的问题,有效提升了电流环控制的动态性能与稳态精度。该方法特别适用于对控制精度和响应速度要求较高的工业应用场景,如高性能伺服系统、电动汽车驱动系统等,具有较强的工程实用价值和科研参考意义。文中提供了完整的Simulink仿真模型与配套代码,确保了研究内容的可复现性和实践操作性。; 适合人群:具备电机控制、自动化或电气工程等相关专业背景,熟悉MATLAB/Simulink仿真环境,从事电机驱动系统研发、控制算法设计或相关领域科研工作的工程师及研究生,尤其适合工作1-5年、希望深入理解先进参数辨识技术的研发人员。; 使用场景及目标:①开展高精度PMSM控制系统的设计与参数辨识研究;②学习并掌握PSO等智能优化算法在电机系统参数辨识中的具体实现与调优技巧;③完成学术论文复现、科研项目验证、毕业设计或工程原型开发,提升对现代电机控制核心技术的理解与应用能力。; 阅读建议:建议读者结合提供的Simulink模型与源代码进行动手实践,按照文档逻辑逐步搭建与调试仿真系统,重点关注PSO算法与电机模型的交互机制、目标函数设计及参数收敛过程,通过对比不同工况下的辨识结果,深入理解算法性能与控制精度之间的内在联系。

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧