Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 14th, 2012  |  syntax: None  |  size: 1.38 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. using std::vector;
  5. using std::cout;
  6. using std::endl;
  7. using std::string;
  8. void print(string name, vector<int> list) {
  9.   cout<<name<<endl;
  10.   for(int ii = 0;ii < list.size();ii++) {
  11.     cout<<list.at(ii)<<endl;
  12.   }
  13. }
  14. void call_by_value(vector<int> list){
  15.   list.push_back(1);
  16. }
  17. void call_by_value2(vector<int> list){
  18.   list = vector<int>();
  19.   list.push_back(1);
  20. }
  21. void call_by_reference(vector<int>& list){
  22.   list.push_back(1);
  23. }
  24. void call_by_reference2(vector<int>& list){
  25.   list = vector<int>();
  26.   list.push_back(1);
  27. }
  28. void call_by_sharing(vector<int>* list){
  29.   list->push_back(1);
  30. }
  31. void call_by_sharing2(vector<int>* list){
  32.   list = new vector<int>();
  33.   list->push_back(1);
  34. }
  35.  
  36. int main(void) {
  37.   vector<int> list;
  38.  
  39.   list = vector<int>();
  40.   list.push_back(0);
  41.   call_by_value(list);
  42.   print("call by value", list);
  43.  
  44.   list = vector<int>();
  45.   list.push_back(0);
  46.   call_by_value2(list);
  47.   print("call by value2", list);
  48.  
  49.   list = vector<int>();
  50.   list.push_back(0);
  51.   call_by_reference(list);
  52.   print("call by reference", list);
  53.  
  54.   list = vector<int>();
  55.   list.push_back(0);
  56.   call_by_reference2(list);
  57.   print("call by reference2", list);
  58.  
  59.   list = vector<int>();
  60.   list.push_back(0);
  61.   call_by_sharing(&list);
  62.   print("call by sharing", list);
  63.  
  64.   list = vector<int>();
  65.   list.push_back(0);
  66.   call_by_sharing2(&list);
  67.   print("call by sharing2", list);
  68. }