fork download
  1. #include <cstdio>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. template<class T>
  7. bool IsPtrInVector(const vector<T>& v, const T* ptr)
  8. {
  9. const T* begin = &v[0];
  10. const T* end = begin + v.size();
  11. return ptr >= begin && ptr < end;
  12. }
  13.  
  14. int main()
  15. {
  16. vector<int> v;
  17. v.resize(15);
  18. printf("&v[-1]? %d\n", IsPtrInVector(v, &v[-1]));
  19. printf("&v[ 0]? %d\n", IsPtrInVector(v, &v[0]));
  20. printf("&v[10]? %d\n", IsPtrInVector(v, &v[10]));
  21. printf("&v[14]? %d\n", IsPtrInVector(v, &v[14]));
  22. printf("&v[15]? %d\n", IsPtrInVector(v, &v[15]));
  23. printf("&v[19]? %d\n", IsPtrInVector(v, &v[19]));
  24. return 0;
  25. }
Success #stdin #stdout 0s 3228KB
stdin
Standard input is empty
stdout
&v[-1]? 0
&v[ 0]? 1
&v[10]? 1
&v[14]? 1
&v[15]? 0
&v[19]? 0