- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Tôi đang viết một danh sách liên kết, sử dụng vector để lưu nó (và tôi biết mình không nên sử dụng vector). Tôi đang cố gắng triển khai chức năng chèn một nút vào một vị trí x
và di chuyển tất cả các phần tử đến x
nhưng vì lý do nào đó nó chỉ lấy vị trí ban đầu các phần tử của x
và ghi đè tất cả các phần tử còn lại bằng giá trị này.
Đây là chức năng tôi gặp sự cố:
//Chèn phần tử vào chỉ mục x
void LinkedList::insertAt(int x, int data) {
Nút* tempNode = Nút mới();
Nút* currentNode = vecList[x];
Nút* nextNode = vecList[x + 1];
Nút* trướcNode = vecList[x - 1];
if(x == đếm) {
push_back(tempNode, dữ liệu);
return;
}
khác {
count++;
for (int i = 0; i < getSize(); i++){
vecList[x + 1]->next = vecList[x]->next; // chuyển địa chỉ của 'temp->next' sang 'temp'
vecList[x + 1]->data = vecList[x]->data;
if (vecList[x] == NULL){break;}
}
tempNode->data = dữ liệu;
tempNode->previous = previousNode;
tempNode->next = nextNode;
tempNode->id = x+1;
vecList[x] = tempNode;
vecList[x - 1]->next = tempNode; // Trỏ nút trước vào nút này
}
}//Thêm nút nhưng thay thế nút gốc
Nó đặt giá trị được truyền vào x
vị trí, tôi nghĩ vấn đề của tôi là di chuyển phần tử tới x
之后。
Khi tôi gọi Linkedlist.insertAt(2, 50);
khi nó đang thực thi:10, 20, 50, 30, 30
, nhưng kỳ vọng là:10, 20, 50, 30,40
.
nút
Sự định nghĩa:
nút cấu trúc {
Nút * trước đó;
Nút * tiếp theo;
int id;
dữ liệu int;
};
câu trả lời hay nhất
Vấn đề là vòng lặp của bạn:
for (int i = 0; i < getSize(); i++){
vecList[x + 1]->next = vecList[x]->next; // chuyển địa chỉ của 'temp->next' sang 'temp'
vecList[x + 1]->data = vecList[x]->data;
if (vecList[x] == NULL){break;}
}
Bạn đang đi ngang qua Tôi
, nhưng thực sự không có gì được đọc trong vòng lặp Tôi
. Vì vậy bạn chỉ cần làm tương tự getSize()
Hạng hai. Tôi nghĩ bạn có ý định vecList[i + 1]
được giao cho veclist[i]
. Hơn nữa, giới hạn dưới của vòng lặp không được 0
, nhưng nên x
. ở đâu, để rõ ràng hơn, tên của biến có lẽ phải là tư thế
hoặc một cái gì đó như thế.
Trong trích dẫn vecList[x + 1]
hoặc vecList[x - 1]
Hãy cẩn thận khi làm như vậy. nếu như x
là 0 hoặc vecList.size() - 1
Điều gì sẽ xảy ra? Bạn đang trỏ đến một đối tượng không xác định.
Về c++ - chèn và di chuyển các phần tử sau vectơ, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/26590697/
Tôi có hàm hủy này tạo ra lỗi "trình lặp vectơ không thể tham chiếu được" khi chạy. GridMatrix là một std::vector * > * > * > * > Tôi đã thêm tên kiểu và kiểu chữ
Tôi có một vectơ gồm các vectơ, giả sử std::vector > my2dArray; Bây giờ tôi muốn một vectơ chứa kích thước của vectơ trong my2dArray; Bằng tay, nó trông giống như
Giả sử tôi có một số vectơ: v1, v2, v3 Giả sử tôi cũng có một vectơ chứa các vList này = {v1, v2, v3} Nếu tôi đồng bộ hóa (vList) thì điều này có nghĩa là v1, v2 và v3 cũng vậy
Tôi đang tạo một mảng vectơ 2D gồm char làm biến lớp, nhưng tôi gặp sự cố khi thêm vectơ vào mảng vectơ. Tôi đang chạy gcc bằng tiêu chuẩn C++ 11. Tôi cố gắng sử dụng vector
Làm cách nào để sửa đổi Vec dựa trên thông tin về một mục trong Vec mà không có tham chiếu bất biến và có thể thay đổi đối với vectơ? Tôi đã cố gắng tạo một ví dụ tối thiểu thể hiện vấn đề cụ thể của mình. Trong mã thực của tôi, cấu trúc Builder đã là cấu trúc trung gian được đề xuất bởi các câu trả lời khác. cụ thể
Câu hỏi này đã có câu trả lời ở đây: Cách Rust thành ngữ để sao chép/sao chép một vectơ trong hàm được tham số hóa là gì?
Trong chương trình của tôi, tôi có một vectơ số nguyên. Bây giờ tôi muốn lấy một vectơ từ một vectơ vectơ và thao tác trên nó trong một vùng chứa vectơ khác, nhưng tôi gặp lỗi...
Tôi nhận được dữ liệu vectơ> do OpenCV cung cấp. Vì một số lý do (ví dụ: bù/tỷ lệ) tôi cần chuyển đổi Điểm dữ liệu thành Point2f. Làm thế nào tôi có thể làm điều này? Ví dụ: std::vector > conto
Tôi có một hàm sẽ khởi tạo một vectơ trống từ loại chuỗi bằng cách sử dụng một số phần tử từ một vectơ nhất định từ loại chuỗi. Cú pháp của tôi trông như thế này std::vector> extr
Tôi nhận được dữ liệu vectơ> do OpenCV cung cấp. Vì một số lý do (ví dụ: bù/tỷ lệ) tôi cần chuyển đổi Điểm dữ liệu thành Point2f. Làm thế nào tôi có thể làm điều này? Ví dụ: std::vector > conto
Có rất nhiều câu hỏi tương tự ở đây, nhưng tôi thực sự không tìm thấy câu trả lời cụ thể nào cho câu hỏi của mình. Tôi có một vectơ vectơ làm thuộc tính của một lớp. Một thuộc tính khác là Buck_count. Tôi muốn chuyển đổi vec của vector
Nếu tôi tạo một vectơ gồm các vectơ như thế này: std::vector> myVectorOfVectors và sau đó điền nó bằng thứ gì đó: std::vector myVector1;
Tôi đang viết một lớp vectơ tùy chỉnh trong C++. Tôi có một câu hỏi về mã như sau: vector vec.push_back(one);
Đây là câu hỏi tôi đã đăng chương trình c++ để đọc tệp csv có kích thước không xác định (chỉ chứa số float) với hằng số (b
vector> a; for (int i=0;iv(i+1); iota(v.begin(),v.end(),1); a.push_back(v); } a.erase(a.beg
Có lẽ đã muộn nhưng tôi không hiểu tại sao tôi lại nhận được chỉ số vectơ ngoài phạm vi của mã này: int m = 3; int n = 2; std::vector> path(m, std::vector(n, 0
Vấn đề này thực sự kỳ lạ và dường như tôi không thể tìm thấy bất cứ điều gì gây ra nó. Vì vậy, đây là hàm nạp chồng toán tử gán, chim và động vật có vú là vectơ. (Sau đây là lớp) const Đăng ký& Đăng ký::opera
Làm cách nào để chuyển std::vector> thành std::vector>? Có cách nào thực sự hiệu quả không? Câu trả lời hay nhất tôi sẽ làm như sau: #include #include int main() { //
Tôi đang cố gắng ghi một số dữ liệu từ các vectơ này vào một tệp văn bản. Khi tôi chạy mã, nó trả về lỗi thời gian chạy. Danh mục, Sản phẩm, Giỏ hàng, Khách hàng và Địa chỉ đều là các cấu trúc chứa mỗi g
Rõ ràng nó sẽ khác nhau tùy thuộc vào trình biên dịch bạn sử dụng, nhưng tôi tò mò về các vấn đề hiệu suất khi thực hiện vector> so với vector*> , đặc biệt là trong C++. Cụ thể: giả sử vectơ bên ngoài của bạn đã đầy và bạn muốn bắt đầu chèn các phần tử vào bên trong đầu tiên
Tôi là một lập trình viên xuất sắc, rất giỏi!