В 2015 году я не смог получить ни одного из этих рабочих
, поэтому я написал немного кода
std::vector<std::string> vs(M_coins + 1);
for (unsigned long long i = 0; i <= M_coins; i++) {
std::for_each(memo[i].begin(), memo[i].end(), [i, &vs](long long &n) {
vs[i].append(std::to_string(n));
});
}
// now vs is ready for use as vs[0], vs[1].. so on, for your debugger
в основном то, что я сделал, было преобразовано вектор в строку. у меня был вектор вектора, поэтому у меня был строковый вектор для заполнения.
std::vector<std::string> s;
std::for_each(v1.begin(), v1.end(), [&s](long long &n) {
s.append(std::to_string(n));
});
// now s is ready for use, for your debugger
надеюсь, что это помогло.
Точно так же, как и для String и Int, вы просто помещаете внутрь разные типы:
Date [] dates = {
new Date(),
new Date()
};
Объявлен массив размера два с двумя датами.
Вы также можете инициализировать нулевыми значениями. :
Date [] dates = new Date[2];
Или добавьте более важные значения:
Date [] dates = {
getDateFromString("25/11/2009"),
getDateFromString("24/12/2009")
};
....
public Date getDateFromString( String s ) {
Date result = ...// parse the string set the value etc.
return result;
}
EDIT
... но можно ли как-нибудь завершить то, что вы делали в методе getDateFromString?
Конечно, изначально я этого не делал, потому что моя точка зрения должен был показать, что вы можете поместить туда все, что относится к типу «Дата».
Вам просто нужно использовать метод SimpleDateFormate.parse () (унаследованный от класса DateFormat)
simpleDateFormatInstance.parse( "24/12/2009" ); // returns christmas 2009.
Вот полный рабочий пример:
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;
import static java.lang.System.out;
public class DateArrayTest {
private static final SimpleDateFormat dateFormat
= new SimpleDateFormat("dd/MM/yyyy");
private static final Date invalidDate = new Date(0);
// test creating a date from a string.
public static void main( String [] args ) {
Date [] randomDates = {
fromString("01/01/2010"), // new year
fromString("16/09/2010"), // 200 yrs Mex indepence
fromString("21/03/2010"), // uhhmm next spring?
fromString("this/should/fail"), // invalid date.
};
for( Date date: randomDates ) {
print( date );
}
}
/**
* Creates a date from the given string spec.
* The date format must be dd/MM/yyyy ie.
* 24 december 2009 would be: 24/12/2009
* @return invalidDate if the format is invalid.
*/
private static final Date fromString( String spec ) {
try {
return dateFormat.parse( spec );
} catch( ParseException dfe ) {
return invalidDate;
}
}
private static final void print( Date date ) {
if( date == invalidDate ) {
out.println("Invalid date");
} else {
out.println( dateFormat.format( date ) );
}
}
}
Или вы можете использовать API коллекций и класс Calendar,
import java.util.*;
List<Calendar> dates = new ArrayList<Calendar>(5); // initial size
dates.add( Calendar.getInstance() );
Большинство файловых баз данных не поддерживают кластерные индексы. Если вы вставили новую строку в неправильном порядке, потребуется переписать весь индекс. Поскольку это дорого (и блокирующая операция), большинство файловых баз данных не позволяют этого.
НО, вы обычно получаете представление о естественном порядке. Вы вставляете их в том порядке, в котором они находятся на диске. Это то, чего у вас нет в полной версии SQL Server, который всегда высвобождает свободное место с предыдущих страниц.
int[] array = new int[] { int.7, int.42 };
String[] array = new String[] {String."Hello", String."world" };
В случае String моя альтернативная реальность была бы очень глупой, поскольку класс String не может заранее знать каждую возможную строку (для int это возможно).
Таким образом, мы бы избавились от общественности статические конечные переменные в String и сделайте это вместо этого:
String[] array = new String[] { new String("Hello"), new String("world") };
Теперь к реальности:
Когда компилятор java, когда он видит «Hello» или «world», он делает что-то подобное «new String (« Hello »)» - это немного умнее, так что если у вас есть «Hello» 20 раз в файле, это будет только одна копия (и некоторые другие вещи тоже).
Когда вы говорите:
new int[100]; you get an array of 100 ints all set to 0.
new String[100]; you get an array of 100 Strings all pointing to null.
new Data[100]; you get 100 Dates all pointing to null.
Поскольку строки и даты являются указывая на null, вам нужно выделить новый объект для каждого из них. Причина, по которой вам не нужно говорить «новый» с помощью String, заключается в том, что компилятор обрабатывает это специально.