Lớp C++ chứa vectơ của chính nó

Bạn có phải là người mới bắt đầu hành trình C++ của mình và bạn thấy việc khởi tạo véc-tơ hơi khó khăn hay bạn đang tìm cách để thực hiện nó? .  

Trong bài viết này, bạn sẽ biết cách khởi tạo vector trong C++, cách khởi tạo vector vector, nếu bạn cần khởi tạo vector trong C++, vector c++, c khởi tạo vector trong constructor, ví dụ vector c++, cách khởi tạo vector 2d trong . Ngồi lại và tận hưởng khoảng thời gian vui vẻ khi xem qua hướng dẫn.  

Làm thế nào để bạn khởi tạo một vector trong C++?

Vectơ C++

Nói chung trong khoa học máy tính và các lĩnh vực liên quan của nó, vectơ là các thùng chứa STL được sử dụng để lưu trữ dữ liệu động. Chúng được gọi là biểu diễn của mảng với đặc tính có thể tăng hoặc giảm kích thước tùy thuộc vào cách thêm hoặc xóa các phần tử. Các vectơ lưu trữ dữ liệu trên một thực thể trên một chỉ mục duy nhất đồng nghĩa với cách đối tác tĩnh của nó lưu trữ dữ liệu. Chèn và xóa xảy ra từ chỉ mục cuối cùng đến chỉ mục đầu tiên. Khi xóa, cần có thời gian không đổi nhưng việc chèn một phần tử sẽ mất thời gian khác biệt. Điều này là do một vectơ cần tự thay đổi kích thước sau khi một phần tử được thêm vào

Cũng giống như cách các bộ chứa STL cung cấp các chức năng khác nhau, các vectơ cũng làm như vậy. Dưới đây là ba danh mục con của một phần chức năng.  

  1. Dung tích. Dung lượng là một hàm thành viên của vectơ c ++ liên quan đến kích thước và dung lượng của vùng chứa vectơ. Dưới đây là các loại dung lượng vector C++ cung cấp.  
dự trữ (), thay đổi kích thước (n), dung lượng (), max_size (), trống (), kích thước () và thu nhỏ_to_fit (),
  1. vòng lặp. Đây là các loại hàm cho phép bạn di chuyển qua vùng chứa vectơ hoặc lặp lại. Dưới đây là một số trình vòng lặp được cung cấp bởi một vectơ C++.  
rbegin(), rend(), cbegin(), cend(), begin(), crbegin(), crend() và  end()
  1. sửa đổi. Loại chức năng này có liên quan đến việc sửa đổi các thùng chứa vectơ. Ví dụ về sửa đổi có thể xảy ra bao gồm loại bỏ phần tử, xóa, v.v. Dưới đây là các loại vectơ sửa đổi cung cấp.  
emplace(), clear(), gán(), pop_back(), hoán đổi(), đẩy_back(), emplace_back() và xóa(),

Cách tạo một Vector trong C++

Các vectơ trong C++ hoạt động bằng cách khai báo vectơ trong C++ sử dụng chúng. Thông thường, cú pháp về cách tạo một vectơ mới trong c ++ trông như thế này

vector variable (elements)

Một sự cố đơn giản

  • Type: it defines a data type that is stored (e.g or )
  • Biến đổi. đây là tên được chọn cho ngày
  • yếu tố. Chỉ định số phần tử cho dữ liệu

Ví dụ véc tơ C++

Truy vấn dưới đây là một loại chương trình điển hình được sử dụng để kiểm tra xem vectơ có chứa phần tử trùng lặp hay không. Nếu vectơ chứa một phần tử trùng lặp, nó sẽ trả về true nhưng nếu không, nó sẽ trả về false.  

#include
using namespace std;
//hàm kiểm tra xem vectơ 
//có chứa phần tử trùng lặp hay không
bool containsDuplicate(vector& nums)
{
    //check if the vector is empty
    if(nums.empty())
        trả về sai; . bắt đầu(), số. end());
    //sort the vector
    sort(nums.begin(), nums.end());
    int i = 0;
    int j = i+1;
    while(j
    {
        //kiểm tra xem phần tử hiện tại 
        //không bằng phần tử kế tiếp
        if(nums[i] != nums[j])
        {
            i++;
            j++;
        }        }        . nums)        }        }        }        }        }        }        }        }        }        }        }        }        }        }        }        }        }        }        }        }
        else
            return true;
    }
    return false;
}        
int main()
{
    vector nums{ 2, 3, 5, 1, 2, 4 };
    //print vector elements
    cout <<“Vector elements are “;
    for (int x : nums)
        cout << x << ” “;
    cout <
    /in kết quả
    if(containsDuplicate(nums))
        cout <<“Vector contains a duplicate element”;
    else
        cout <<“Vector does not contain a duplicate element”;
}

Các cách khởi tạo một Vector trong C++

Trong khởi tạo véc-tơ, véc-tơ có thể được khởi tạo mà không cần xác định kích thước của vùng chứa vì kích thước tự động tăng hoặc giảm. Để khởi tạo một vectơ, có sáu cách khác nhau về cách khởi tạo một vectơ trong C++.  

  1. Sử dụng một mảng hiện có

Việc sử dụng một mảng có sẵn trong khởi tạo vector là một trong những cách tiêu chuẩn nhất. Một vectơ có thể được khởi tạo bằng cách sử dụng một mảng đã được xác định. Làm điều này liên quan đến việc chuyển các phần tử của mảng tới hàm tạo iterator của lớp vectơ.  

Hình minh họa

// Chương trình CPP để khởi tạo một vector từ
// một mảng.
#include
sử dụng không gian tên std;
 
int main()
{
    int arr[] = { 10, 20, 30 };
    int n = sizeof(arr) / sizeof(arr[0]);
 
    vector vect(arr, arr + n);
 
    for (int x : vect)
        cout << x << ” “;
 
    return 0;
.
Output: 

10 20 30
  1. Sử dụng hàm tạo quá tải của lớp vectơ

Trong hàm tạo quá tải, hàm tạo chấp nhận hai phần tử. Kích thước của vectơ và giá trị được chèn được cung cấp trong quá trình khởi tạo vectơ C++. Giá trị được cung cấp sẽ được chèn vào vectơ nhiều lần bằng với kích thước được cung cấp của vectơ. Dưới đây là một minh họa về cách thực hiện

Hình minh họa

Input: vector v1(5, 2)

đầu ra. Vectơ kết quả sẽ là

2 2 2 2 2

Input: vector v2(4, 1)

đầu ra. Vectơ kết quả sẽ là

1 1 1 1

#include
#include
using namespace std; . \n”;
int main()  
 {  
  // initialize size 
  int size = 5;  
  // initialize vector using an overloaded constructor 
  vector v1(size, 2);   
  // print the vector elements
  cout << “The vector v1 is: \n”;
  for (int i = 0; i < v1. kích thước(); . \n”;
  {  
    cout << v1[i] << ” “;   
  }   
  cout << “\n”; 
  // initialize vector v2 
  vector v2(4, 1);    
  // print elements of vector v2
  cout << “\nThe vector v2 is: \n”;
  for (int i = 0; i < v2. kích thước();
  {  
    cout << v2[i] << ” “;   
  }   
  cout << “\n\n”;
  return 0;  
}
  1. Sử dụng một vectơ hiện có

Điều này liên quan đến việc chuyển trình vòng lặp của một vectơ đã được khởi tạo cho một hàm tạo của lớp vectơ. Làm điều này dẫn đến việc khởi tạo và tổng hợp một vectơ mới bởi các phần tử trong vectơ cũ. Dưới đây là một minh họa của mã

Hình minh họa

// Chương trình CPP để khởi tạo một vectơ từ
// một vectơ khác.
#include
sử dụng không gian tên std;
 
int main()
{
    vector vect1{ 10, 20, 30 };
 
    vector vect2(vect1.begin(), vect1.end());
 
    for (int x. vect2)
        cout << x << ” “;
 
    return 0;
.
Output: 
 
10 20 30
  1. Truyền một mảng cho hàm tạo vectơ

Đây là một phương pháp quan trọng khác để khởi tạo các vectơ. Nó liên quan đến việc chuyển một mảng các phần tử tới hàm tạo của lớp vectơ. Tại đây, các phần tử mảng sẽ được chèn vào vector theo thứ tự dẫn đến việc tự động điều chỉnh kích thước của vector.  

Hình minh họa

Đầu vào. vectơ
Đầu ra. Vectơ kết quả sẽ là.
  10 20 30 40 50
Đầu vào. vector
Đầu ra. Vectơ kết quả sẽ là.
 a b c d e
#include
#include
using namespace std . \n”;
int main()  
 {   
  // pass an array of integers to initialize the vector 
  vector v1{10, 20, 30, 40, 50};
  // print vector elements
  cout << “The vector elements are: \n”;
  for (int i = 0; i < v1. kích thước(); . \n”;
  {  
    cout << v1[i] << ” “;   
  }
  cout << “\n\n”; 
  // pass an array of characters to initialize the vector  
  vector v2{‘a’, ‘b’, ‘c’, ‘d’, ‘e’}; 
  // print vector elements
  cout << “The vector elements are: \n”;
  for (int i = 0; i < v2. kích thước();
  {  
    cout << v2[i] << ” “;   
  }   
  cout << “\n\n”; 
  return 0;  
}
  1. Sử dụng phương thức push_back() để đẩy giá trị vào vector

Bạn có thể sử dụng phương pháp này để chèn hoặc đẩy các phần tử vào một vectơ. Mỗi phần tử được chèn vào cuối vectơ và kích thước vectơ cũng tăng thêm 1. Tên của vectơ là vector_name. Trong phương pháp đẩy lùi, một phần tử được chấp nhận và phần tử được chèn vào cuối vectơ.  

Hình minh họa

// Chương trình CPP để tạo một vectơ trống
// và đẩy từng giá trị một.
#include
sử dụng không gian tên std;
 
int main()
{
    // Create an empty vector
    vector vect;
 
    vect.push_back(10);
    vect. push_back(20);
    vect. push_back(30);
 
    for (int x. vect)
        cout << x << ” “;
 
    return 0;
. 10, 20, 30

Output: 10, 20, 30
  1. Sử dụng phương thức fill()

Đúng như tên gọi, nó gán hoặc lấp đầy tất cả các phần tử trong phạm vi đã chỉ định cho giá trị cụ thể. Dưới đây là một ví dụ về việc sử dụng chức năng điền

Hình minh họa

Xét các vectơ v1 và v2 có kích thước 5

Đầu vào. điền vào (v1. bắt đầu(), v1. kết thúc(), 6)

đầu ra. Vectơ kết quả sẽ là

6 6 6 6 6

Đầu vào. điền vào (v2. bắt đầu() + 2, v2. bắt đầu() + 4, 6)

đầu ra. Vectơ kết quả sẽ là

0 0 6 6 0

#include
#include
using namespace std; . bắt đầu(), v1. end(), 6);
int main()  
 { 
  // declare a vector
  vector v1(5);
  // initialize the vector using the fill() method
  fill(v1.begin(), v1.end(), 6);
  // khai báo một vectơ khác
  vector
  // . bắt đầu() + 2, v2. begin() + 4, 6);
  fill(v2.begin() + 2, v2.begin() + 4, 6);
  // in các phần tử vectơ
  cout << “Các phần tử vectơ là. \N"; . kích thước(); . \n”;
  {  
    cout << v1[i] << ” “;   
  }
  cout << “\n\n”; 
  // print vector elements
  cout << “The vector elements are: \n”;
  for (int i = 0; i < v2. kích thước();
  {  
    cout << v2[i] << ” “;   
  }  
  cout << “\n\n”;
  return 0;   
}

Làm thế nào để bạn khởi tạo các vectơ Vector?

Trong khởi tạo vectơ C++, vectơ vectơ được gọi là vectơ hai chiều và để khởi tạo nó, trước tiên bạn có thể khởi tạo vectơ một chiều và sau đó sử dụng nó để khởi tạo vectơ hai chiều hoặc thực hiện trong một dòng. Dưới đây là một ví dụ về hai

vector
vector

hoặc

vector >    v2(8, vector(5));

Cách in một Vector trong C++

Bạn có thể làm theo các mã cơ bản này về cách in một vectơ trong C++

#include
#include

void print(std. vectơ
   std. cout << “Các phần tử vector là. “;

   for(int i=0; i < a. kích thước(); . cout << a. at(i) << ‘ ‘;
   std::cout << a.at(i) << ‘ ‘;
}

int main() {
   std. vector
   print(a);
   return 0;
}
Output

Bạn có cần khởi tạo vectơ trong C++ không?

Cũng giống như mảng, vectơ có thể lưu trữ nhiều giá trị dữ liệu. Tuy nhiên, chúng chỉ có thể lưu trữ các tham chiếu đối tượng chứ không phải các kiểu dữ liệu nguyên thủy. Lưu trữ một tham chiếu đối tượng có nghĩa là các vectơ trỏ đến đối tượng thay vì lưu trữ chúng. Khác với mảng, vectơ không cần khởi tạo kích thước. Chúng có thể điều chỉnh theo số lượng tham chiếu đối tượng vì quá trình lưu trữ diễn ra tự động thông qua vùng chứa.  

Các vectơ có thể được tìm thấy và chuyển đổi ngang bằng cách sử dụng các trình vòng lặp, vì vậy chúng có thể được đặt trong bộ lưu trữ liên tục. Một thuộc tính khác của vectơ là biện pháp an toàn giúp chương trình không bị sập. Một vectơ là một lớp và các phần tử có thể bị xóa. Nhưng một mảng không phải là một lớp và các phần tử không thể bị xóa.  

C++ Khởi tạo Vector Với Kích thước

Trong C++, kích thước của vectơ có thể được khởi tạo khi bạn biết rõ về số lượng phần tử cần được lưu trữ. Ví dụ: nếu bạn đang truy xuất dữ liệu từ cơ sở dữ liệu hoặc các nguồn khác và bạn biết số lượng phần tử hiện có, giả sử là 500, thì bạn có thể tiến hành phân bổ vectơ bằng một mảng có thể chứa lượng dữ liệu đó. Mặc dù nếu bạn không biết kích thước sẽ là bao nhiêu, thì bạn có thể để vectơ phát triển theo thời gian.  

C++ Khởi tạo Vector thành 0

Trong khởi tạo véc tơ, số lượng giá trị trong bộ khởi tạo được chuẩn bị sẵn sẽ ít hơn hoặc bằng số lượng phần tử của loại véc tơ. Có lẽ có bất kỳ phần tử nào chưa được khởi tạo, nó sẽ được khởi tạo bằng 0. Dưới đây là các ví dụ về khởi tạo vector bằng cách sử dụng danh sách bộ khởi tạo.  

vector không dấu int v1 = {1};
                               //    and the remaining 12 bytes with zeros 
vector unsigned int v2 = {1,2};  // initialize the first 8 bytes of v2 with 1 and 2
                                 // and the remaining 8 bytes with zeros
vector unsigned int v3 = {1,2,3,4};  // equivalent to the vector literal
                                     // (vector unsigned int) (1,2,3,4)

Khởi tạo Vector trong Constructor

Việc chuyển một nhà thầu tới vector có thể được thực hiện bằng cách thực hiện theo các bước dưới đây;

Thuật toán
Bắt đầu
   Khai báo một lớp có tên là vectơ.
      Khai báo vec của loại véc-tơ.
      Khai báo hàm tạo của lớp vectơ.
         Truyền đối tượng vectơ v làm tham số cho hàm tạo.
          Khởi tạo vec = v.
          Khai báo hàm show() để hiển thị các giá trị của vector.
             for (int i = 0; i < vec. kích thước(); .
               print the all values of variable i.
   Khai báo v của loại vectơ.
      Khởi tạo một số giá trị thành v trong mẫu mảng.
   Khai báo ob làm đối tượng dựa trên lớp vectơ.
      Truyền các giá trị của vectơ v qua đối tượng vectơ ob cho lớp vectơ.
   Gọi hàm show() sử dụng đối tượng vectơ để hiển thị tất cả các giá trị của
   vector v.
Kết thúc.

Khởi tạo 2d Vector C++

Các vectơ hai chiều có thể được phát triển bằng một số phương pháp. Một số phương pháp là;

  1. Sử dụng Fill Constructor. Phương pháp này là phương pháp được đề xuất. Ở đây, hàm tạo điền tạo một số giá trị cụ thể. Sau đó, nó điền vào giá trị này mà nó đã tạo
  2. Thay đổi kích thước. Phương thức này được sử dụng để khởi tạo một hệ số hai chiều với một giá trị mặc định cho trước
  3. đẩy lùi. Phương thức này thêm một phần tử đã cho vào cuối vectơ để nó được khởi tạo.  
  4. Sử dụng danh sách khởi tạo. Phương pháp này liên quan đến việc sử dụng các giá trị mặc định để khởi tạo các vectơ 2D.  

Khởi tạo Vector rỗng C++

Để khởi tạo vector rỗng c ++, bạn có thể làm theo các bước được nêu trong mã bên dưới.  

//Chương trình C++ STL để tạo một vectơ trống 
//và khởi tạo bằng cách đẩy các giá trị
#include
#include
using namespace std;

int main()
{
    //vector declaration
    vector v1;

    //pushing the elements
    v1.push_back(10);
    v1. push_back(20);
    v1. push_back(30);
    v1. push_back(40);
    v1. push_back(50);

    //in các phần tử vectơ
    //tạo trình vòng lặp để truy cập các phần tử
    vector
    cout << “Các phần tử vectơ v1 là. “;
    cho (it = v1. bắt đầu(); . = v1. chấm dứt();
        cout << *it << ” “;
    cout << endl;

    return 0;
}

Conclusion

Để sử dụng hiệu quả C++, việc có kiến ​​thức chi tiết về vectơ và quá trình khởi tạo vectơ C++ là rất quan trọng. Vì vậy, dành thời gian của bạn và đam mê thực hành liên tục nên là mục tiêu của bạn.  

Bạn có thể duy trì thực hành nhất quán khi bạn ở trong cộng đồng những lập trình viên có cùng chí hướng. Tham gia Câu lạc bộ SDS để có quyền truy cập vào hàng trăm khóa học và trở thành một phần của cộng đồng đang phát triển gồm các kỹ sư và nhà khoa học điều khiển dữ liệu.  

Một lớp có thể chứa chính nó C++ không?

Một khai báo lớp có thể chứa đối tượng tĩnh của kiểu tự , nó cũng có thể có con trỏ tới kiểu tự, nhưng nó không thể có đối tượng không tĩnh kiểu tự.

Một lớp có thể là thành viên của chính nó không?

Cụ thể, mọi phần tử của một lớp là một tập hợp, vì vậy một lớp riêng không thể là phần tử của bất kỳ lớp nào (bao gồm cả chính nó). Tuy nhiên, hoàn toàn hợp lý khi cho phép các tập hợp là các phần tử của chính chúng.

Bạn có thể có một vectơ các lớp trong C++ không?

Lớp vectơ Thư viện chuẩn C++ là mẫu lớp cho vùng chứa trình tự . Một vectơ lưu trữ các phần tử của một loại nhất định theo cách sắp xếp tuyến tính và cho phép truy cập ngẫu nhiên nhanh vào bất kỳ phần tử nào. Một vectơ là vùng chứa ưa thích cho một chuỗi khi hiệu suất truy cập ngẫu nhiên ở mức cao.

Một vectơ có thể lưu trữ một lớp không?

Vectơ của các đối tượng lớp là một ví dụ về vectơ tùy chỉnh được tạo để chúng ta có thể lưu trữ nhiều thể hiện của lớp . Nếu chúng ta muốn dữ liệu về sinh viên thì hãy sử dụng cái này – vector