关于向量的问题,新手求教
程序代码:
#include<iostream> #include<vector> using namespace std; vector<vector<int>> threeSum(vector<int> &num) { vector<vector<int>> result; int len=num.size(); for(int i=0;i<len;++i) { int target=0-num[i]; int start=i+1,end=len-1; while(start<end) { if(num[start]+num[end]==target){ result.push_back(num[i]); result.push_back(num[start]); result.push_back(num[end]); start++;end--; while(start<end&&num[start]==num[start-1]) { start++; } while((start<end) && (num[end]==start[end+1])) { end--; } } else if(num[start]+num[end]<target) start++; else end--; } while(i<len) if(num[i]==num[i+1]) i++; } return result; } void main(){ int a[]={-5,-1,0,1,2,3,4}; vector<int> num(a); vector<vector<int>> b=threeSum(num); for(int i=0;i<b.size();i++) cout<<b[i]<<endl; }
E:\练习题\三数之和为零\threeSum.cpp(4) : error C2275: 'vector<int,class std::allocator<int> >' : illegal use of this type as an expression
求三个数之和为零的算法,不知道哪里错了用向量老是实现不了,书也反了,还是不知道问题在哪。
求大佬有空看看指点下我。
另外,可以的话,推荐几个学习网址,看书还是有很多不懂得。
[此贴子已经被作者于2017-12-27 20:24编辑过]