Какой результат вы хотите? Если вы хотите, чтобы все целые числа находились в одном векторе, вы могли бы сделать что-то вроде:
std::ifstream input("input.txt");
std::vector<int> data(std::istream_iterator<int>(input),
std::istream_iterator<int>());
Это отбрасывает линейную структуру, хотя вы все вместе получаете данные. Один простой способ сохранить исходную структуру строки - прочитать строку с getline, инициализировать строковый поток с этой строкой, а затем поместить значения из этого строкового потока в вектор (и нажать это на обратной стороне вектора векторов int).
std::vector<std::vector<int> > data;
std::vector<int> temp;
std::string t;
while (std::getline(input, t)) {
std::istringstream in(t);
std::copy(std::istream_iterator<int>(in),
std::istream_iterator<int>(),
std::back_inserter(temp);
data.push_back(temp);
}
Первый - просто создает анонимную функцию и присваивает ее переменная some_func
. Таким образом, использование some_func ()
вызовет функцию.
Второй должен быть частью объектной записи
var obj = {
show:function(value){
// some code here
}
};
Итак, obj. show () вызовет функцию
В обоих случаях вы создаете анонимную функцию. Но в первом случае вы просто присваиваете его переменной. Тогда как во втором случае вы назначаете его как член объекта (возможно, среди многих других).
Они называются анонимными функциями; Вы можете прочитать больше о них здесь:
http://www.ejball.com/EdAtWork/2005/03/28/JavaScriptAnonymousFunctions.aspx
Один способ сделать это:
var some_func = function(value) {
// some code here
}
Другой способ:
function some_funct() {
}
Еще один способ:
var some_object={};
some_object["some_func"] = function() {};
или:
var some_object={};
some_object.some_func = function() {};
Другими словами, есть много способов объявить функцию в JS.
Ваш второй пример неверен.
Первый ...
some_func = function(value) {
// some code here
}
объявляет переменную и назначает ей анонимную функцию , что эквивалентно ...
function some_func (value) {
// some code here
}
Второй должен выглядеть так ...
obj = {
show:function(value){
// some code here
}
}
// obj.show(value)
и эквивалентно ...
//pseudo code
class MyClass {
function show (value) {
// some code here
}
}
obj = new MyClass(); // obj.show(value)
Приветствия
Существует шесть способов / контекстов для создания функций:
1) Стандартная декларативная нотация (наиболее знакомая людям с фоном C)
function foo() {}
Все остальные - это функция выражения :
2) Как метод литерала объекта
var obj = {
foo: function() {}
};
3) Как метод созданного объекта (создается каждый раз, когда выполняется new
)
var Obj = function() {
this.foo = function() {};
};
4) Как метод прототипа (создается только один раз, независимо от того, сколько раз new
выполняется)
var Obj = function() {};
Obj.prototype.foo = function() {};
5) Как анонимная функция со ссылкой (тот же эффект, что и # 1) *
var foo = function() {};
6) Как немедленно выполняемая анонимная функция (полностью анонимная)
(function() {})();
* Когда я смотрю на этот оператор, я рассматриваю результат. Поэтому я не считаю их анонимными, потому что ссылка на функцию создается немедленно и поэтому больше не является анонимной. Но большинству людей все равно.
Первая - это локальная (или глобальная) переменная с назначенной анонимной функцией.
var some_name = function(val) {};
some_name(42);
Вторая - это свойство некоторого объекта (или функции с меткой перед ней) с назначенной анонимной функцией.
var obj = {
show: function(val) {},
// ...
};
obj.show(42);
Функции являются первоклассными гражданами в JavaScript, поэтому вы можете назначать их переменным и вызывать эти функции из переменной.
Вы даже можете объявить функцию с другим именем, чем переменная, которой эта функция будет назначена. Это удобно, когда вы хотите определить рекурсивные методы, например, вместо этого:
var obj = {
show: function(val) {
if (val > 0) { this.show(val-1); }
print(val);
}
};
вы можете написать:
var obj = {
show: function f(val) {
if (val > 0) { f(val-1); }
print(val);
}
};
Первый - это объявление функции, присвоенное переменной (по крайней мере, так и должно быть, несмотря на то, что сначала отсутствует объявление типа переменной), второй, вероятно, связан с объектом декларация.
В первом примере создается глобальная переменная (если локальная переменная с таким именем еще не существует) с именем some_func
и назначается ей функция, так что some_func ()
может быть вызван.
Второй пример - объявление функции внутри объекта. он назначает функцию как значение свойства show
объекта:
var myObj = {
propString: "abc",
propFunction: function() { alert('test'); }
};
myObj.propFunction();