Re: passing vector as argument
"Ron Francis" wrote:
Having an obvious name may help, but in the end, the coder could
call it anything at all.
Actually you can say it about any data structure. Having a
variable `data', for instance, is no different from `MyVector'
typedef. However, usually this is not the case. The following code
class CustomerInfo { ... };
typedef std::vector<CustomerInfo> CustomerInfoVec;
void UpdateCustomerXYZ(CustomerInfoVec& civ)
{
for(CustomerInfoVec::iterator it = civ.begin();
it != civ.end();
++it)
{
CustomerInfo& ci = *it;
...
}
}
is much easier to read comparing to this one:
void UpdateCustomerXYZ(std::vector<CustomerInfo>& civ)
{
for(std::vector<CustomerInfo>::iterator it = civ.begin();
it != civ.end();
++it)
{
CustomerInfo& ci = *it;
...
}
}
In the case of `std::map' the typedef version is even more
eloquent:
typdef std::map<CustomerID, CustomerInfo> CustomerInfoMap;
CustomerInfoMap::value_type v = ...
Alex