常见情况:
将std :: string传递给函数foo(std :: string *)或foo(std :: string&);
将tr1 :: shared_ptr传递给函数foo(tr1 :: shared_ptr * ptr)或foo(tr1 :: shared_ptr&ptr);
通常,什么是良好实践。我总是很困惑。最初,将所有内容作为引用传递似乎是一致的,但是不可能将Literals作为引用传递或将NULL作为引用传递。
同样,将所有内容都用作指针看起来不错,但随后我不得不担心指针可能指向NULL并在该函数的开头检查这些条件。
您认为以下代码片段好吗?
#include <iostream>
#include <vector>
#include <map>
#include <string>
#include <tr1/memory>
#include <algorithm>
using namespace std;
using namespace std::tr1;
int main(){
map<string, shared_ptr<vector<string> > > adjacencyMap;
vector<string>* myFriends = new vector<string>();
myFriends->push_back(string("a"));
myFriends->push_back(string("v"));
myFriends->push_back(string("g"));
adjacencyMap["s"] = shared_ptr<vector<string> >(myFriends);
return 0;
}
谢谢阿杰
慕村225694
相关分类