トップ
新規
一覧
単語検索
最終更新
ヘルプ
ログイン
アールメカブ
sizeofについて
をテンプレートにして作成
開始行:
[[Programming]]
sizeof の使い方を多少誤解していた.[[ここ:http://www.kis-...
>
for ループの例
sizeofの使い道の一つとしてforループのループ数の指定にあり...
forの例
<
double data[50];
double sum = 0;
for(int i = 0; i < sizeof(data) / sizeof(data[0]); ++i){
sum += data[i];
}
>
ここで,sizeof(data)は,data[50]全体を指しますので,8 (do...
次に,sizeof(data[0])は,一つの要素を指しますので,8 (dou...
そのため,400 / 8 = 50となり,dataの持つ要素数となります.
この方法で書いておくと,dataの型を変更した場合や,要素の...
forに使えない例
<
double *data;
double sum = 0;
data = (double*)malloc(sizeof(double) * N);
for(int i = 0; i < sizeof(data) / sizeof(data[0]); ++i){
sum += data[i];
}
free(data);
>
ここで,sizeof(data)は,data全体ではなく,dataの型つまりd...
<
例としてこんなプログラムを作成(石田作成)
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
int main(int arg, char *argv[]){
string str[] = {"cake", "cheese", "cherry"};
int x;
cout << "how many elements in str? " <<
(x = sizeof(str)/sizeof(str[0])) << endl;
for(int i = 0; i < x; i++){
cout << "length of str[" << i << "]="
<< str[i].length() << endl;
}
// vector クラスを使ってみる
vector<string> vec;
vec.push_back("cake");
vec.push_back("cheese");
vec.push_back("cherry");
// while(vec.size())でも良いが iterator を使うと
x = 0;
vector<string>::iterator pv = vec.begin();
while(pv != vec.end()){
cout << "vec." << x++ << " = " << *pv++ << endl;
}
return 0;
}
終了行:
[[Programming]]
sizeof の使い方を多少誤解していた.[[ここ:http://www.kis-...
>
for ループの例
sizeofの使い道の一つとしてforループのループ数の指定にあり...
forの例
<
double data[50];
double sum = 0;
for(int i = 0; i < sizeof(data) / sizeof(data[0]); ++i){
sum += data[i];
}
>
ここで,sizeof(data)は,data[50]全体を指しますので,8 (do...
次に,sizeof(data[0])は,一つの要素を指しますので,8 (dou...
そのため,400 / 8 = 50となり,dataの持つ要素数となります.
この方法で書いておくと,dataの型を変更した場合や,要素の...
forに使えない例
<
double *data;
double sum = 0;
data = (double*)malloc(sizeof(double) * N);
for(int i = 0; i < sizeof(data) / sizeof(data[0]); ++i){
sum += data[i];
}
free(data);
>
ここで,sizeof(data)は,data全体ではなく,dataの型つまりd...
<
例としてこんなプログラムを作成(石田作成)
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
int main(int arg, char *argv[]){
string str[] = {"cake", "cheese", "cherry"};
int x;
cout << "how many elements in str? " <<
(x = sizeof(str)/sizeof(str[0])) << endl;
for(int i = 0; i < x; i++){
cout << "length of str[" << i << "]="
<< str[i].length() << endl;
}
// vector クラスを使ってみる
vector<string> vec;
vec.push_back("cake");
vec.push_back("cheese");
vec.push_back("cherry");
// while(vec.size())でも良いが iterator を使うと
x = 0;
vector<string>::iterator pv = vec.begin();
while(pv != vec.end()){
cout << "vec." << x++ << " = " << *pv++ << endl;
}
return 0;
}
ページ名: