我是C++的新手,我请求帮助来解决问题.
我正在编写一个简单的STL样式函数,它应该返回序列的中间元素(向量,列表等)
这是我的函数,我尝试使用迭代器的概念
template <class It, class T> It middle(It first, It last)
{
while(first!=last){
++first;
--last;
}
return first;
}
Run Code Online (Sandbox Code Playgroud)
这是我的主要,试图调用中间为一个向量的向量(我省略了包括)
int main() {
vector<int>vi;
int x;
cout<<"Enter vector elemets...";
while (cin>>x)
vi.push_back(x);
cout<<endl;
cin.clear();
cout<<"the vector is:"<<endl;
for(int i=0;i<vi.size();++i)
cout<<vi[i]<<" ";
cout<<endl;
vector<int>::iterator first=vi.begin();
vector<int>::iterator last=vi.end();
vector<int>::iterator ii=middle(first,last);
cout<<"The middle element of the vector is: "<<*ii<<endl;
}
Run Code Online (Sandbox Code Playgroud)
使用g ++编译时出现以下错误:
myex21-7.cpp:79: error: no matching function for call to ‘middle(__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >&, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >&)’
Run Code Online (Sandbox Code Playgroud)
有人可以给我一些解决方法吗?感谢您对高级潜行的任何帮助
我正在为某个软件创建一个类图.现在,我确定了重要的类并将它们联系起来,它们很好.
问题是我有两个不同的类与另一个相同的类关联,但具有不同的访问级别.例如,我正在Admin
和Clerk
班级相关的Video
班级.在Clerk
将只能查看,同时Admin
可以查看和编辑.我可以在类图中显示这种区别吗?
我尽可能多地尝试搜索,但是当你是初学者时,它有点难.无论如何我试图学习Java并且我坚持一个问题,即"var1可能比var2或var3大但不是两者.而且我应该用布尔值来回答."
e = var1 > var2 || var1 > var3 && var1 < var2 + var3;
Run Code Online (Sandbox Code Playgroud)
如果我这样做,我最终只需要完成var2和var3的总和.我该怎么做
var1 < var2 AND var3;
Run Code Online (Sandbox Code Playgroud) 我所做的就是将这些字符串分配给enumdata类型值,但它不起作用.我已将字符串分配给C中的枚举.我究竟做错了什么?
#include <stdio.h>
enum day{monday,tuesday,wednesday};
int main()
{
enum day pres;
int n,ab;
scanf("%s",&pres);
scanf("%d",&ab);
n=((ab%7)+pres);
print("%d",n);
return 0;
}
Run Code Online (Sandbox Code Playgroud)