  Moduli spaces of algebraic curves and closely related to them Hurwitz spaces,
that is, spaces of meromorphic functions on the curves, arise naturally in
numerous problems of algebraic geometry and mathematical physics, especially in
relationship with the string theory and Gromov--Witten invariants. In
particular, the classical Hurwitz problem about enumeration of topologically
distinct ramified coverings of the sphere with prescribed ramification type
reduces to the study of geometry and topology of these spaces. The cohomology
rings of such spaces are complicated even in the simplest cases of rational
curves and functions. However, the cohomology classes that are the most
important from the point of view of applications (namely, the classes
Poincar\'e dual to the strata of functions with given singularities) can be
expressed in terms of relatively simple ``basic'' classes (which are, in a
sense, tautological). The aim of the present paper is to identify these basic
classes, to describe relations among them, and to find expressions for the
strata in terms of these classes. Our approach is based on R. Thom's theory of
universal polynomials of singularities, which has been extended to the case of
multisingularities by the first author. Although the general Hurwitz problem
still remains open, our approach allows one to achieve a significant progress
in its solution, as well as in the understanding of the geometry and topology
of Hurwitz spaces.
