首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

VS6.0 中使用 std::vector 存放自定義對象集合的完整示例

     編輯:程式設計綜合問答

環境限制

VS6.0 (VC98) 標準庫支持有限,需確保包含 `` 並啟用 RTTI、異常處理(專案設置 → C/C++ → Code Generation)。

完整代碼示例:ATM 賬戶管理

#include <vector>
#include <string>
#include <iostream>

using namespace std;

class Account {
public:
    Account(int id, const string& name, double balance)
        : id_(id), name_(name), balance_(balance) {}
    void display() const {
        cout << "ID: " << id_ << ", Name: " << name_ << ", Balance: " << balance_ << endl;
    }
private:
    int id_;
    string name_;
    double balance_;
};

int main() {
    // 存放對象(值語義,會拷貝)
    vector accounts;
    accounts.emplace_back(1, "Alice", 1000.0);
    accounts.emplace_back(2, "Bob", 2000.0);

    // 遍歷
    for (const auto& acc : accounts) {
        acc.display();
    }

    // 若需存放指針(多態、避免拷貝),用 vector
    // 需手動管理內存或配合智能指針(VS6 需自行實現或用 boost)
    return 0;
}

關鍵注意點

  • 值語義 vs 指針語義:`vector` 存對象副本,修改元素不影響原對象;`vector` 存指針,需自行 `new`/`delete`。
  • 迭代器失效:`push_back` 可能導致重新分配,所有迭代器、指針、引用失效。
  • VS6 兼容性:`emplace_back` 可能不支持,改用 `push_back(Account(...))`;範圍 for 循環不支持,用下標或迭代器遍歷。

VS6.0 std::vector 存放自定義對象,值語義與指針語義選擇,ATM 賬戶管理完整示例,兼容性注意事項。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved