Tôi có một std :: istream đó đề cập đến dữ liệu ma trận, một cái gì đó như:C++ đọc từ istream cho đến khi xuống dòng (nhưng không phải khoảng trắng)
0.0 1.0 2.0
3.0 4.0 5.0
Bây giờ, để đánh giá số lượng cột Tôi muốn có một số mã như:
std::vector<double> vec;
double x;
while((...something...) && (istream >> x))
{
vec.push_back(x);
}
//Here vec should contain 0.0, 1.0 and 2.0
nơi ... một cái gì đó ... một phần là false sau khi tôi đọc 2.0 và istream tại điểm nên có 3.0 để tiếp theo
istream >> x;
phải đặt x bằng 3.0.
Bạn sẽ đạt được kết quả này như thế nào? Tôi đoán rằng điều kiện trong khi
Cảm ơn bạn rất nhiều trước sự giúp đỡ của bạn!
Chỉ cần làm rõ, lý do tôi muốn theo đuổi cách tiếp cận này (nếu có thể làm được) là tránh tạo các đối tượng tạm thời (ngoài x đôi). Ma trận sau đó được tạo bởi std :: swap - ing vectơ ở trên với bộ nhớ trong ma trận (nó được thực hiện thông qua một std :: vector). – stepelu
tốt, bạn có thể làm điều đó với một tạm thời trong 10 dòng đơn giản, hoặc bạn có thể làm điều đó mà không có tạm thời trong 50 dòng cứng. Sử dụng tạm thời. –