c++vector

315 阅读1分钟

编译时出现:error: '>>' should be '> >' within a nested template argument list错误。

使用C++11之前标准的编译器会将">>“视为移位符号

在'>>'中间加一个空格变成'> >'即可。

输出

for(const int& k : va)        cout << k << " ";cout << endl;

 vector::iterator it;
for (it=vec1.begin();it!=vec1.end();it++)
cout<<*it<<" ";

}

#include <algorithm>#include <iterator> // for ostream_iterator<>copy(va.begin(),va.end(),ostream_iterator<int>(cout," "));cout << endl;

template <class T>void show(const T& x){    cout << x << " ";} for_each(va.begin(),va.end(),show<int>);    cout << endl;

二维输入

for (vector<vector>::iterator it = v.begin(); it < v.end(); it++) { for (vector::iterator vit = (*it).begin(); vit < (*it).end(); vit++) { cout << *vit << " "; } cout << endl; }

输入

while(cin >> temp) //如果不确定输入数字个数,可以用这bai种方式 { vec.push_back(temp); //填充数据 }

这是最后的代码

#include<iostream>
#include<vector>
using namespace std; 
 		vector<vector<int> > ans;
        vector<int> ansAns;
		void dfs(vector<int>& candidates,int target,int i,vector<vector<int> >& ans,vector<int>& ansAns)
    {
        if(i==candidates.size()) return;
        if(target==0) {ans.push_back(ansAns); return;}
        dfs(candidates,target-candidates[i],i+1,ans,ansAns);
        if(target-candidates[i]>0)
        {
            ansAns.push_back(candidates[i]);
            dfs(candidates,target-candidates[i],i+1,ans,ansAns);
           ansAns.pop_back();
        }

    }
        	vector<vector<int> > combinationSum2(vector<int>& candidates, int target) {

        dfs(candidates,target,0,ans,ansAns);
        return ans;
    }

	int main()
	{int target;
		cin>>target;
		vector<int> candidates;
		vector<int>::iterator it;
		int temp;
		cout<<"shuru"<<endl;
		while(cin>>temp&&temp!='0')
		{	
			candidates.push_back(temp);

		}
		cout<<"shuchu" ;

		combinationSum2(candidates,target);
	for (vector<vector<int> >::iterator it = ans.begin(); it < ans.end(); it++)
	{
		for (vector<int>::iterator vit = (*it).begin(); vit < (*it).end(); vit++)
		{
			cout << *vit << " ";
		}
		cout << endl;
	}
		return 0;
	}