int* là con trỏ int, chứ không phải là một object nên không có "constructor", đúng hơn là dùng "initialization". Nếu bạn muốn gán nguyên mảng bằng 0 có thể viết đơn giản như sau:
int *a = new int[10] {};
Tuy nhiên để gán nguyên mảng với giá trị khác thì bạn có thể dùng std::fill_n
http://www.cplusplus.com/reference/algorithm/fill_n/
Chẳng hạn gán 7 giá trị đầu là -3: std::fill_n(a, 7, -3)
Template là để cài đặt class/hàm có các thuộc tính/tham số có kiểu khác nhau nhưng được xử lý như nhau. Không có liên quan gì đến việc khởi tạo các kiểu mảng C cả (dùng 2 cách mình nêu trên hoặc dùng vòng lặp). Còn đối với các object thuộc các container class của C++ STL, đều có sẵn constructor để khởi tạo nguyên container với một giá trị nào đó, chẳng hạn:
std::list<int> myList(7, -3); //Tạo 1 linked list với 7 phần tử -3