Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Cho mình hỏi về thêm phần tử trong class mang số nguyên

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    3

    Mặc định Cho mình hỏi về thêm phần tử trong class mang số nguyên

    Minh có bài tập là thêm 1 phần tử số nguyên vào class mảng.Trong đó phần tử mảng mình dùng biến động để cấp phát.
    Khi mình thêm 1 phần tử vào mảng thì khi chạy chương trình xong thi nó báo lồi là không ghi thêm vào bộ nhớ khi đã kết thúc heap.vậy mình phải làm sao để thay đổi màng thêm 1 phần tử mà không bị báo lỗi.Mong các bạn giúp đỡ.Thanks
    Đây là đoạn code chèn Pt:
    Code:
    void Mang::chenPt()
    {
    	Mang m;
    	int vt,gt;
    	cout<<"Nhap vi tri can chen: ";
    	cin>>vt;
    	cout<<"Nhap gia tri chen: ";
    	cin>>gt;
    	m_pElement=new int[m_iKichThuoc+1];
    	if(vt<0||vt>this->m_iKichThuoc-1)
    		cout<<"Loi ngoai pham vi truy xuat"<<endl;
    	else
    		for(int i=vt;i<m_iKichThuoc;i++)
    		{
    			m_pElement[i+1]=m_pElement[i];
    			m_pElement[vt]=gt;
    		}
    		m_iKichThuoc++;
    
    }
    Phần header:
    PHP Code:
    #include <iostream>
    #include <iomanip>
    using namespace std;
    #ifndef _Mang
    #define _Mang
    class Mang
    {
    private:
        
    int *m_pElement;
        
    int m_iKichThuoc;
    public:
        
    Mang()
        {
            
    m_pElement=NULL;
            
    m_iKichThuoc=0;
        }
        
    Mang(int kt);
        
    Mang(const Mang &m1);
        
    int getLenght();
        
    virtual~Mang();
        
    Mang &operator =(const Mang &m1);
        
    int &layPT(int iIndex);
        
    int &operator [](int i_chiSo);
        
    void xapXepTang();
        
    void xapXepGiam();
        
    void chenPt();
        
    friend istream &operator >>(istream &is,Mang &m)
        {
            
    cout<<"Nhap kich thuoc mang: ";
            
    is>>m.m_iKichThuoc;
            for(
    int i=0;i<m.m_iKichThuoc;i++)
            {
                
    cout<<"a["<<i<<"]=" ;
                
    is>>m.m_pElement[i];
            }
            return 
    is;
        }
        
    friend ostream &operator <<(ostream &os,const Mang m)
        {
            for(
    int i=0;i<m.m_iKichThuoc;i++)
            {
                
    os<<setw(5)<<m.m_pElement[i];
            }
            return 
    os;
        }
    };

    #endif 

  2. #2
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Chương trình này nói chung là không ổn
    C Code:
    1. void Mang::chenPt()
    2. {
    3.     Mang m;
    4.     int vt,gt;
    5.     cout<<"Nhap vi tri can chen: ";
    6.     cin>>vt;
    7.     cout<<"Nhap gia tri chen: ";
    8.     cin>>gt;
    9.     m_pElement=new int[m_iKichThuoc+1];
    10.     if(vt<0||vt>this->m_iKichThuoc-1)
    11.         cout<<"Loi ngoai pham vi truy xuat"<<endl;
    12.     else
    13.         for(int i=vt;i<m_iKichThuoc;i++)
    14.             m_pElement[i+1]=m_pElement[i];
    15.         m_pElement[vt]=gt;
    16.         m_iKichThuoc++;
    17. }

    Bạn thử đoạn code này sẽ thấy lý do
    C Code:
    1. #include <iostream>
    2. using namespace std;
    3.  
    4. int main()
    5. {
    6.     int *a = new int[5];
    7.     for (int i=0; i<5; ++i) a[i] = 2*i;
    8.  
    9.     for (int i=0; i<5; ++i) cout << a[i] <<"  ";
    10.     cout << endl;
    11.  
    12.     a = new int[6];
    13.     for (int i=0; i<6; ++i) cout << a[i] <<"  ";
    14.     cout << endl;
    15.     delete[] a;
    16.     return 0;
    17. }

    Bạn có thể thay đổi kích thước bộ nhớ bằng cách sử dụng realloc

Các đề tài tương tự

  1. Cách khởi tạo giá trị cho các phần tử mang chỉ số âm trong mảng?
    Gửi bởi newbie2000 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 21-10-2013, 03:29 PM
  2. Bài tập C++ cần hướng dẫn thêm vê class và class lồng nhau.
    Gửi bởi vanminhcit trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 22-10-2012, 11:44 AM
  3. Algorithm Thêm 1 phần tử vào đầu mảng.Giữ nguyên thứ tự,làm thế nào ?
    Gửi bởi banglsvn trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 18-11-2011, 05:25 PM
  4. Bài tập C++ in ra bảng nguyên tố bằng sử dụng class trong C++( không có hiểu đề cho lắm)
    Gửi bởi nonachan trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 12-03-2011, 01:05 PM
  5. những thành phần bắt buộc phải có trong hàm delete của struct/class ?
    Gửi bởi kukopuka trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 21
    Bài viết cuối: 20-02-2011, 09:36 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn