Nếu bạn đã có dữ liệu ban đầu được đặt xung quanh, nói trong một mảng kiểu C, đừng quên rằng các thùng chứa STL này có "các hàm tạo 2 vòng lặp".
const char raw_data[100] = { ... };
std::vector<char> v(raw_data, raw_data + 100);
Sửa: Tôi đã được yêu cầu hiển thị một ví dụ cho một bản đồ. Nó không phải là thường bạn có một loạt các cặp nằm xung quanh, nhưng trong quá khứ tôi đã tạo ra một kịch bản Python mà tạo ra các mảng của cặp từ một tập tin dữ liệu thô. sau đó tôi #include cấu trúc mã tạo này và initalized một bản đồ với nó như thế này:
#include <map>
#include <string>
#include <utility>
using namespace std;
typedef map<string, int> MyMap;
// this array may have been generated from a script, for example:
const MyMap::value_type raw_data[2] = {
MyMap::value_type("hello", 42),
MyMap::value_type("world", 88),
};
MyMap my_map(raw_data, raw_data + 2);
Hoặc nếu bạn có một loạt các phím, và và mảng các giá trị dữ liệu, bạn có thể lặp qua chúng, gọi đồ. chèn (make_pair (khóa, giá trị));
Bạn cũng hỏi về memset và vector. Tôi không nghĩ rằng có bất kỳ công đức thực để sử dụng memset để khởi tạo một vector, vì vectơ có thể được đưa ra một giá trị ban đầu cho tất cả các yếu tố của họ thông qua các nhà xây dựng:
vector<int> v2(100, 42); // 100 ints all with the value of 42
vector<string> v(42, "initial value"); // 42 copies of "initial value"
Nguồn
2009-03-12 23:06:45
bây giờ, còn bản đồ thì sao? –
Đã thêm ví dụ cho bản đồ. –