00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef OR_TOOLS_UTIL_STRING_ARRAY_H_
00015 #define OR_TOOLS_UTIL_STRING_ARRAY_H_
00016
00017 #include <string>
00018
00019 #include "base/integral_types.h"
00020 #include "base/stringprintf.h"
00021
00022 using std::string;
00023
00024 namespace operations_research {
00025
00026
00027
00028
00029 template <class T> string DebugStringArray(T* const* array,
00030 int size,
00031 const string& separator) {
00032 string out;
00033 for (int i = 0; i < size; ++i) {
00034 if (i > 0) {
00035 out.append(separator);
00036 }
00037 out.append(array[i]->DebugString());
00038 }
00039 return out;
00040 }
00041
00042
00043
00044 template <class T> string DebugStringVector(const std::vector<T*>& array,
00045 const string& separator) {
00046 return DebugStringArray(array.data(), array.size(), separator);
00047 }
00048
00049
00050
00051 template <class T> string NameArray(T* const* array,
00052 int size,
00053 const string& separator) {
00054 string out;
00055 for (int i = 0; i < size; ++i) {
00056 if (i > 0) {
00057 out.append(separator);
00058 }
00059 out.append(array[i]->name());
00060 }
00061 return out;
00062 }
00063
00064
00065 inline string Int64ArrayToString(const int64* const array,
00066 int size,
00067 const string& separator) {
00068 string out;
00069 for (int i = 0; i < size; ++i) {
00070 if (i > 0) {
00071 out.append(separator);
00072 }
00073 StringAppendF(&out, "%" GG_LL_FORMAT "d", array[i]);
00074 }
00075 return out;
00076 }
00077
00078
00079 inline string IntArrayToString(const int* const array,
00080 int size,
00081 const string& separator) {
00082 string out;
00083 for (int i = 0; i < size; ++i) {
00084 if (i > 0) {
00085 out.append(separator);
00086 }
00087 StringAppendF(&out, "%d", array[i]);
00088 }
00089 return out;
00090 }
00091
00092
00093 inline string Int64VectorToString(const std::vector<int64>& array,
00094 const string& separator) {
00095 return Int64ArrayToString(array.data(), array.size(), separator);
00096 }
00097
00098
00099 inline string IntVectorToString(const std::vector<int>& array,
00100 const string& separator) {
00101 return IntArrayToString(array.data(), array.size(), separator);
00102 }
00103
00104 }
00105 #endif // OR_TOOLS_UTIL_STRING_ARRAY_H_