Мне не ясно, почему в каждом списке должны быть только нули. Однако присвоение элементов вставленным именам является головной болью в R. Вы должны использовать функцию assign и указать среду. Примерно так.
for(i in 1:2){
values <- list(1:i)
assign(x = paste0("List_", i), value = values, envir = globalenv())
}
List_1
[[1]]
[1] 1
List_2
[[1]]
[1] 1 2
Если Вы уже имеете наложение исходных данных вокруг, говорите в массиве стиля C, не забывайте, что эти контейнеры STL имеют "конструкторов с 2 итераторами".
const char raw_data[100] = { ... };
std::vector<char> v(raw_data, raw_data + 100);
Править: Меня попросили показать пример для карты. Это не часто, у Вас есть массив наложения пар вокруг, но в прошлом я создал сценарий Python, который генерировал массив пар из файла необработанных данных. Я затем #include эта сгенерированная кодом структура и initalized карта с ним как это:
#include <map>
#include <string>
#include <utility>
using namespace std;
typedef map<string, int> MyMap;
// this array may have been generated from a script, for example:
const MyMap::value_type raw_data[2] = {
MyMap::value_type("hello", 42),
MyMap::value_type("world", 88),
};
MyMap my_map(raw_data, raw_data + 2);
Кроме того, если у Вас есть массив ключей, и и массив значений данных, можно циклично выполниться по ним, звоня map.insert (make_pair (ключ, значение));
Вы также спрашиваете о memset и векторе. Я не думаю, что существует любая реальная заслуга к использованию memset для инициализации вектора, потому что векторам можно дать начальное значение для всех их элементов через конструктора:
vector<int> v2(100, 42); // 100 ints all with the value of 42
vector<string> v(42, "initial value"); // 42 copies of "initial value"
библиотека присвоения повышения путем (http://www.boost.org/doc/libs/1_38_0/libs/assign/doc/index.html)
использование повышения пространства имен:: присвойтесь;
станд.:: вектор <интервал> v;
v + = 1,2,3,4,5,6,7,8,9;
станд.:: карта <станд.:: строка, интервал> m;
вставьте (m) ("Панель", 1) ("Нечто", 2);
вектор <интервал> v;
v + = 1, 2, repeat_fun (4, &rand), 4;
станд.:: генерируйте или станд.:: generate_n
Я использую пользовательские операторы для вставки данных:
#include <vector>
#include <iostream>
#include <string>
using namespace std;
template <class T>
vector<T>& operator<<(vector<T>& vec, const T& x) {
vec.push_back(x);
return vec;
}
vector<string>& operator<<(vector<string>& vec, char* cstr) {
string s(cstr);
vec.push_back(s);
return vec;
}
int main() {
vector<int> foo;
vector<string> bar;
foo << 7 << 8 << 9 << 10;
bar << "foo" << "bar" << "baz";
}