我从来没有在C专业编程和使用(Visual)C作为学生.我很难处理缺乏抽象,特别是与
STL container classes.例如,矢量类不包含一个简单的删除方法,常见于许多库,例如.NET Framework.我知道有一个
erase的方法,它不会使删除方法抽象足够减少操作到一行方法调用.例如,如果我有一个
- std::vector<std::string>
我不知道如何从矢量中删除一个字符串元素,而不会通过它遍历并搜索匹配的字符串元素.
- bool remove(vector<string> & msgs,string toRemove) {
- if (msgs.size() > 0) {
- vector<string>::iterator it = msgs.end() - 1;
- while (it >= msgs.begin()) {
- string remove = it->data();
- if (remove == toRemove) {
- //std::cout << "removing '" << it->data() << "'\n";
- msgs.erase(it);
- return true;
- }
- it--;
- }
- }
- return false;
}
专业C程序员在这种情况下做什么?你每次写出实现吗?您是否创建自己的容器类,您自己的帮助函数库,还是建议使用另一个库,即Boost(即使您在Visual Studio中编程Windows)?或者是其他东西?