2016-03-05 39 views
0

嗨我正在使用一个有整数和数组的类,并创建类对象的向量,但我无法排序它也不知道存储在它中。无法排序向量中有数组的对象

我对C++这样一个初学者,我只是想知道,如果我错了, 如何做到这一点的东西

这里,n =没有时间程序必须执行

NUM =存储没有。在矢量元素你描述一个

but problem loop for(j=0;j<arr[i].a.end();j++) 
and also pushback is not working 

#include <iostream> 
#include <vector> 
#include <algorithm> 
using namespace std; 

class subcont 
{ 
public: 
    int num; 
    vector<int> a; 

}; 

int main() 
{ 
    vector<subcont> arr(100); 
    int i,j,k,l,n,num1,num2; 


cin>>n; 

for(i=0;i<n;i++) 
{ 
    cin>>arr[i].num;   

    for(j=0;j<arr[i].num;j++) 
     { 
      cin>>num2; 
      cin>>arr[i].a.pushback(num2); 

     } 

} 


for(i=0;i<n;i++) 
{ 

    sort(arr[i].a.begin(),arr[i].a.end()); 

} 

    for(i=0;i<n;i++) 
    { 

     cout<<arr[i].num; 

     for(j=0;j<arr[i].a.end();j++) 
      cout<<arr[i].a[j]; 
    } 




return 0; 
} 

回答

0

的问题的声音,如果你至少可以编译你的代码,这是我不能。实际上,编译器错误消息(如果首先忽略不愉快的模板产生的大量错误噪声)应该暗示最重要的问题。

一见钟情的逻辑问题:在for(j=0;j<k;j++)中,k的值未定义。在for(j=0;j<arr[i].a.end();a++)a++没有意义。 cin>>arr[i].a.pushback[num];num应该可能是num2。请检查您的代码以获取更多此类错误。

排序失败,因为a是C数组而不是C++容器,因此a.begin()a.end()未定义。

文体问题:虽然它让生活变得更加简单,迈恩人严格建议使用using namespace std;

附记:为什么要代替subcont不使用std::vector<int>

+0

谢谢,为了帮助我 –

+0

排序功能已解决,但Mr.Hagen循环和推回不起作用,即使我改正了你告诉我 –