// Define the base protocol
protocol Drawable {
func draw()
}
// Extend the Drawable protocol to add functionality
protocol ColorfulDrawable: Drawable {
var color: String { get }
}
// Implement a class that conforms to the ColorfulDrawable protocol
class Circle: ColorfulDrawable {
var radius: Double
var color: String
init(radius: Double, color: String) {
self.radius = radius
self.color = color
}
func draw() {
print("Drawing a \(color) circle with radius \(radius)")
}
}
// Implement another class conforming to the Drawable protocol
class Rectangle: Drawable {
var width: Double
var height: Double
init(width: Double, height: Double) {
self.width = width
self.height = height
}
func draw() {
print("Drawing a rectangle of width: \(width) and height: \(height)")
}
}
How do I avoid rehashing overhead with std::set in multithreaded code?
How do I find elements with custom comparators with std::set for embedded targets?
How do I erase elements while iterating with std::set for embedded targets?
How do I provide stable iteration order with std::unordered_map for large datasets?
How do I reserve capacity ahead of time with std::unordered_map for large datasets?
How do I erase elements while iterating with std::unordered_map in multithreaded code?
How do I provide stable iteration order with std::map for embedded targets?
How do I provide stable iteration order with std::map in multithreaded code?
How do I avoid rehashing overhead with std::map in performance-sensitive code?
How do I merge two containers efficiently with std::map for embedded targets?