■過去ログ置き場に戻る■
1-
前250
最新50
[memo]
"9999999999_00.html#R20"
という感じで、URLの最後に "#R
レスNo
" を追加すると幸せになれます。
C++相談室 part14
751
名前:
デフォルトの名無しさん
:03/01/21 14:37
inがなにがしかのコンパイラ拡張のプロパティという可能性はありうるな。
この場合のinの実体はメソッドだ。
752
名前:
デフォルトの名無しさん
:03/01/21 14:50
struct {
class {
int data[10];
public:
int& operator [](int n) {
if (n < 0 || (sizeof(data)/sizeof(data[0])) <= n) {
throw なんちゃら_error();
}
return data[n];
}
} in;
} fftData;
753
名前:
746
:03/01/21 15:01
thanx
>>752
でも、operatorの文字は無いみたい。
http://sourceforge.net/project/showfiles.php?group_id=51043&release_id=134725
から拾いますた。
754
名前:
デフォルトの名無しさん
:03/01/21 18:24
fftDataは、inていう実数の配列を持っとるわけだが。
755
名前:
746
:03/01/21 18:48
>>754
あ、本当ですね。有難うございました。
なんか、inという名前と標準入力で混乱してました。
756
名前:
デフォルトの名無しさん
:03/01/21 20:27
今さ、ふっと
「テンプレート使えば Power(べき乗)をコンパイル時に計算できるなぁ」と
思ったんだけど、なんかうまくいかない。
考えがうまくまとまってないんだけど、だれかアドバイスくんない?
以下、書きかけのコードね。
template <typename T, int X, int Y>
struct Power
{
public: enum
{
Value = Power<T, X, Y - 1>::Value * X;
};
};
template <typename T, int X>
struct Power<1>
{
public: enum
{
Value = X;
};
};
よろしくおながいします。
757
名前:
デフォルトの名無しさん
:03/01/21 20:43
>>756
template <int N>
struct Power {
enum { Value = Power<N - 1>::Value * N };
};
template <>
struct Power<1> {
enum { Value = 1 };
};
int main()
{
Power<10> p;
std::cout << p.Value << std::endl;
}
758
名前:
デフォルトの名無しさん
:03/01/21 21:01
前VCで再帰テンプレートやったら
あきまへんでー言うエラー吐かれた気が。
C++の規格ではどうなってるんでしょ?
759
名前:
C++厨
:03/01/21 21:25
>あきまへんで
(*゚∀゚)=3
大阪まだ〜?
760
名前:
デフォルトの名無しさん
:03/01/21 21:46
>>756
ちょっと前にいろいろ作ったなぁ・・・。
最大公約数、最小公倍数、フィボナッチ数、log、順列、組合せ、etc. ...
もっと応用範囲はありそうだけど、ここよりはtemplate統合スレ向きの話題かも。
>>757
インスタンスつくらなくても、
std::cout << Power<10>::Value << std::endl;
でいける。
761
名前:
756
:03/01/21 21:53
>>757
引数減ってるじゃん?っていうか、それは何を求めてるんですか?
762
名前:
デフォルトの名無しさん
:03/01/21 21:55
>>757
はべき乗ではなくて階乗を求めていると思われ。
763
名前:
デフォルトの名無しさん
:03/01/21 21:58
ワロタ
764
名前:
デフォルトの名無しさん
:03/01/21 22:00
べき乗ならこうでは?
template <int A, int N>
struct Power {
enum { Value = Power<A, N - 1>::Value * A };
};
template <int A>
struct Power <A, 1>{
enum { Value = A };
};
int main()
{
std::cout << Power<5, 3>::Value << std::endl;
}
765
名前:
デフォルトの名無しさん
:03/01/21 22:06
ちなみにこういうのはコンパイルが通らない。
template <typename T, T A, int N>
struct Power {
enum T { Value = Power<T, A, N - 1>::Value * A };
};
template <typename T, T A>
struct Power <T, A, 1>{
enum T { Value = A };
};
int main()
{
std::cout << Power<double, 5, 3>::Value << std::endl;
}
766
名前:
デフォルトの名無しさん
:03/01/21 22:13
>>765
enum T ってのは何か意味あんの?タグ名?
767
名前:
デフォルトの名無しさん
:03/01/21 22:15
どちらにしてもenumはdouble型にはならんわな。
768
名前:
デフォルトの名無しさん
:03/01/22 03:51
>>760
うぷキボソヌ
769
名前:
デフォルトの名無しさん
:03/01/22 14:58
情報系の人間ではないんですが、ソフトの改良をすることになり困っております。
処理した画像を連番で指定したフォルダに保存するようにしたいのです。
どのように考えればいいかだけでもご指導お願いします。
770
名前:
デフォルトの名無しさん
:03/01/22 15:31
>>769
画像を処理する→連番で指定したフォルダに保存
ってかんじでOKかい?
771
名前:
C++厨
:03/01/22 15:35
for (uint i = 1; i < 10; ++i) {
&nsp;ostringstream os;
&nsp;os<<"hikky"<<i<<".jpg";
&nsp;ofstream fo(os.str().c_str(), std::ios::binary | std::ios::out);
&nsp;//君のofstreamに入りたいハァハァ...
}
みたいなのはどうでしょうか?
772
名前:
C++厨
:03/01/22 15:37
ナンカチガウ(-_-)
773
名前:
760
:03/01/22 15:48
>>768
>
>>760
> うぷキボソヌ
家帰らんとコヲド持ってこれん。
明日まで待ってくれ。
774
名前:
デフォルトの名無しさん
:03/01/22 15:52
>>771
775
名前:
デフォルトの名無しさん
:03/01/22 16:07
例えば最大公約数なら
#include <iostream>
template <int M, int N>
struct GCD {
enum { Value = GCD<N, M % N>::Value };
};
template <int M>
struct GCD<M, 0> {
enum { Value = M };
};
int main()
{
std::cout << GCD<121, 77>::Value << std::endl;
}
776
名前:
デフォルトの名無しさん
:03/01/22 16:09
最大公約数を利用して最小公倍数を求める:
template <int M, int N>
struct LCM {
enum { Value = M * N / GCD<M, N>::Value };
}
777
名前:
デフォルトの名無しさん
:03/01/22 16:13
フィボナッチ数を求める:
#include <iostream>
template <int M>
struct Fibonacci {
enum { Value = Fibonacci<M - 2>::Value + Fibonacci<M - 1>::Value };
};
template <>
struct Fibonacci<0> {
enum { Value = 1 };
};
template <>
struct Fibonacci<1> {
enum { Value = 1 };
};
int main()
{
std::cout << Fibonacci<8>::Value << std::endl;
}
778
名前:
デフォルトの名無しさん
:03/01/22 16:15
順列とか組み合わせはどういう考え方で行くのかな・・・・・
779
名前:
デフォルトの名無しさん
:03/01/22 16:16
スマソ。フィボナッチ数を若干修正。
template <>
struct Fibonacci<1> {
enum { Value = 1 };
};
template <>
struct Fibonacci<2> {
enum { Value = 1 };
};
780
名前:
デフォルトの名無しさん
:03/01/22 16:25
アッカーマン関数
#include <iostream>
template <int M, int N>
struct Ackermann {
enum { Value = Ackermann<M - 1, Ackermann<M, N - 1>::Value>::Value };
};
template <int N>
struct Ackermann <0, N> {
enum { Value = N + 1 };
};
template <int M>
struct Ackermann <M, 0> {
enum { Value = Ackermann<M - 1, 1>::Value };
};
int main()
{
std::cout << Ackermann<3, 4>::Value << std::endl;
}
781
名前:
デフォルトの名無しさん
:03/01/22 16:30
こういうテンプレートプログラムを書いていると、感覚的にはPrologで
書くのとよく似ていると思うのは俺だけか?
782
名前:
デフォルトの名無しさん
:03/01/22 16:41
>>781
漏れは関数型言語(Haskellとか)で書いてるような気がしてくる。
783
名前:
デフォルトの名無しさん
:03/01/22 16:56
・・・と思ったら他の方がいろいろ書いてくれてますね。
>>778
残るは順列と組合せだけ。記憶を頼りに書いてみます。
#include <iostream>
// 順列
template<int M, int N> struct P {
enum{ value = M * P<M - 1, N - 1>::value };
};
template<int M> struct P<M, 0> {
enum{ value = 1 };
};
// 組合せ
template<int M, int N> struct C {
enum{ value = C<M - 1, N>::value + C<M - 1, N - 1>::value };
};
template<int M> struct C<M, 0> {
enum{ value = 1 };
};
template<int M> struct C<M, M> {
enum{ value = 1 };
};
int main() {
std::cout << P<5, 3>::value << ", " << C<5, 3>::value << std::endl;
}
784
名前:
760
:03/01/22 16:59
スマソ
>>783
は
>>760
です。
上のコードはg++ 3.2で通ることを確認・
785
名前:
デフォルトの名無しさん
:03/01/22 17:03
>>783
>>784
ああなるほど、順列と組み合わせは、順列の数とnPr組み合わせの数nCrを
求めるだけなのか。
どうやって(1,2,3)のような表現をするのかと悩んでいますた。
786
名前:
デフォルトの名無しさん
:03/01/22 19:31
標準入出力が無いOSで、コンパイル通すためにダミークラス作ろうと思います。
std::cerr
みたいなのはネームスペースstdにcerrという変数かメソッド(どっち?)用意するとして、
std::cerr<<"realFF
みたいな標準入力受けたり出来ますか?
787
名前:
ブラシさん
:03/01/22 19:53
実行と終了を繰り返すと、OSがフリーズします。怪しい部分を書きます。
このソースでのブラシの使い方で問題点があったら指摘してください。
case WM_RBUTTONDOWN:
hDC = GetDC(hWnd);
hBrush = CreateSolidBrush(255);
rect.left = 10;
rect.top = 10;
FillRect(hDC, &rect, hBrush);
DeleteObject(hBrush);
hBrush = CreateSolidBrush(128);
rect.left = 20;
rect.top = 20;
FillRect(hDC, &rect, hBrush);
DeleteObject(hBrush);
ReleaseDC(hWnd, hDC);
break;
788
名前:
デフォルトの名無しさん
:03/01/22 20:53
>>787
ここじゃないと思うが・・
789
名前:
誘導するのも面倒なので
:03/01/22 20:59
>>787
rect.right と rect.bottom は初期化してますか?
790
名前:
デフォルトの名無しさん
:03/01/22 21:03
loki の SmallObject を試してみたら
標準のアロケータより遅い。圧倒的に遅い。
みんなのところは本当に早くなってる?
ちなみに VC6Std と BCC5.5 と gcc-2.91.57 で試したが
全部標準のアロケータの倍近く時間がかかってるみたい。
791
名前:
790
:03/01/22 21:04
ちなみに ThreadingModell は外した状態ね。
シングルスレッド同士のガチンコ対決だけど遅いのです。
792
名前:
デフォルトの名無しさん
:03/01/22 21:21
そりゃシングルスレッドだったら標準のが一番はやかろーもん
793
名前:
デフォルトの名無しさん
:03/01/22 21:26
>>792
malloc(), free() と比較すると、そうとも言えんよ。STL のアロケータだと、最初から
かなりキッチリ最適化されてるヤツが多いけど。
>>791
比較環境が良く分からん…
794
名前:
デフォルトの名無しさん
:03/01/22 22:21
C++始めたばかりなんですがクラスがいまいち理解できません。
クラスを詳しく説明してるサイトはありますでしょうか?
795
名前:
デフォルトの名無しさん
:03/01/22 22:25
ここにあるような、高度なテンプレートの使い方を解説しているサイトはありますか?
796
名前:
デフォルトの名無しさん
:03/01/22 22:26
>>794
http://www.em-sphere.com/rule/class.htm
797
名前:
794
:03/01/22 22:29
>>796
RPG系はあまり好きじゃないんで、すいません
798
名前:
デフォルトの名無しさん
:03/01/22 23:00
>>795
そんなに高度でもないと思うけど・・・・・
こちらの方が高度かも
↓
http://pc3.2ch.net/test/read.cgi/tech/1037795348/l50
799
名前:
デフォルトの名無しさん
:03/01/22 23:48
>>796
なんでやねん ( ´∀)fつ
800
名前:
デフォルトの名無しさん
:03/01/22 23:52
>>795
金を払って書籍「Generic Programming」と「Modern C++ Design」でも読むのが近道。
801
名前:
デフォルトの名無しさん
:03/01/22 23:57
>>800
ありがとう。
802
名前:
ブラシさん
:03/01/23 00:43
>>788
,789
書いてなかった rect.right と rect.bottom はまともな数字が入っています。
別の部分でのバグのようなので、他を探してみます。
ありがとうございました。
SelectObjectが必要と言われるかもしれないと思っていました。
803
名前:
769
:03/01/23 00:45
>770
現在のプログラムでは、撮影して画像処理した後に自分で名前を付けてBMP形式で保存するようになっています。
それを何とか連番で自動保存したいのです。
804
名前:
デフォルトの名無しさん
:03/01/23 00:57
throwがある関数は必ずtry{}でくくらないと駄目なんでしょうか?
例外を捕捉しなくても良いときもあるのですが、
今はそんなときにもtry,catchをしてます。
これは無駄なような気がしているのですが…
805
名前:
デフォルトの名無しさん
:03/01/23 00:59
>>804
補足しなくても良いときがあるならくくらなくて良いでしょ
806
名前:
756
:03/01/23 01:04
みんなありがとん。
<ストライク>パクらせて</ストライク>参考にさせてもらいました。
807
名前:
ブラシさん
:03/01/23 01:10
オーバーフローの問題。
型を超える数字計算は、計算の途中で型を超えても、
型に納まる範囲内の結果は正常に得ることができるのか
例えば、クリックするたびに、3の累乗の1の位の値を
表示するというプログラム。
3, 9, 7, 1 ............
static BYTE byte = 3;
char buf[10];
case WM_LBUTTONDOWN:
wsprintf(buf, "%u", byte);
MessageBox(NULL, buf, "", MB_OK);
byte*=7;
break;
これは byte が255を越えてからも正しい結果を得られるんでしょうか?
808
名前:
804
:03/01/23 01:11
>>805
そうすると、プログラムは終了してしまいますよね?
…私のthrowの使い方間違ってるのかな…?
例えば、
mallocでメモリ確保失敗してもNULLが返るだけですが、
newだと例外が発生するのでtry,catchしないと終了してしまうのではないかなあ、と。
809
名前:
デフォルトの名無しさん
:03/01/23 01:17
>>808
その通りです。
例外が発生してcatchしないとunexpected()が呼び出されて
異常終了します。
810
名前:
デフォルトの名無しさん
:03/01/23 01:17
>>808
間違ってない。
ってゆーかどういう動作を期待してるわけ?
newの失敗を無視してどうやってプログラムを続けることができるだろうか?
アクセス違反で即アボンじゃん
811
名前:
768
:03/01/23 01:28
>>760
をぉ、色々サンクスコ。家帰ってまた何かあったらヨロシコ。
812
名前:
808
:03/01/23 03:31
>>809-810
返答ありがとうございます。
Cから移ってきたばかりなので、C++の作法がまだよくわかってないみたいです…
>>808
では、例えでnewを出しただけでして、
実際は自作の関数にthrowを導入することを考えてました。
少し調べてみたのですが、BCBやVC++にはnew(nothrow)という
例外出さないnewもあるみたいですね。
こういうことをやりたかったのですが、ヘッダファイルを見る限り
今の私には手に負えそうに無いです…
もう少しC++の勉強してからまたチャレンジしたいと思います。
ありがとうございました。
813
名前:
デフォルトの名無しさん
:03/01/23 03:50
>>807
オーバーフローすると正確な値は得られんよ。
例えば4ビットのコンピュータで8があるとする。
1000
4倍すると
100000
しかし、4ビットだから右の0000しか得られない。
8の4倍と0の区別ができないから。
814
名前:
デフォルトの名無しさん
:03/01/23 04:05
オーバーフローは例外でトラップできないからチェックするには計算のたびに
いちいちキャリーフラグ調べないといけないんだよな。 めんどくさ。
815
名前:
デフォルトの名無しさん
:03/01/23 04:43
>>813
> 型に納まる範囲内の結果は正常に得ることができるのか
ということだから、
>>813
の形だと「できる」ってことになるね。
でも、これってどんな CPU 、どんなコンパイラを使っても
そうなるって保証されてることなのかな?
足し算引き算は大抵大丈夫だと思うけど、掛け算はどうなの?
816
名前:
レゴ
:03/01/23 04:45
あちらの方から飛んで来ました。
実行結果をファイルに出力するやり方を教えて欲しいです。
自分でずっとやってるんですが、中々うまくいきません。
817
名前:
デフォルトの名無しさん
:03/01/23 04:47
計算の途中ではいったんintに拡張されてその後元の型に押し込められる・・・はず
818
名前:
レゴ
:03/01/23 04:47
#include <iostream.h>
#include<stdio.h>
void main()
{
FILE *fp,*fc;
fp=fopen("素数−実行結果.txt","w");
int i, j ,f,n=1000,c=0;
// 1から1000までの数の素数を求める
// i, jはループ変数
// fは一回でも割り切れたら1。
// 一度も割り切れなかったら0。
for(i = 2; i <= n; i++) // i(==2,3,4,..,1000)について調べる。
{
f = 0;
for(j = 2; j < i; j++) // j(==2,3,...,i)で割ってみる。
{
if(i % j == 0) // あるjで割り切れたらfは1。
f = 1;
}
if(f == 0){// iを割り切るjがなかった場合
cout << i << "は素数です。" << endl;
c++;
}
}
printf("%d個です。",c);
fc=fclose("素数−実行結果.txt","w");
}
ここから、どう直していけば良いのか分からないんです。
819
名前:
デフォルトの名無しさん
:03/01/23 04:49
>>818
宿題スレ行け。つーか、どう直すも一から書き直せって感じだが。
820
名前:
レゴ
:03/01/23 04:49
817>>
はい。何か、エラーが出ました。
変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。って・・・
821
名前:
デフォルトの名無しさん
:03/01/23 04:51
>>818
予想以上だな・・・
とりあえずこっち来たってことはC++風の書き方がしたいわけだな?
822
名前:
レゴ
:03/01/23 04:53
でも、一応
#include <iostream.h>
#include<stdio.h>
void main()
{
int i, j ,f,n=1000,c=0;
// 1から1000までの数の素数を求める
// i, jはループ変数
// fは一回でも割り切れたら1。
// 一度も割り切れなかったら0。
for(i = 2; i <= n; i++) // i(==2,3,4,..,1000)について調べる。
{
f = 0;
for(j = 2; j < i; j++) // j(==2,3,...,i)で割ってみる。
{
if(i % j == 0) // あるjで割り切れたらfは1。
f = 1;
}
if(f == 0){// iを割り切るjがなかった場合
cout << i << "は素数です。" << endl;
c++;
}
}
printf("%d個です。",c);
}
だけなら、普通に動くんですよ☆
823
名前:
デフォルトの名無しさん
:03/01/23 04:54
プロcなんてしらんが、まずC言語というのでやってみたらどうだ?
824
名前:
レゴ
:03/01/23 04:58
ファイル名がcppなだけで、
殆ど、C言語で書いてるんだと思います。
あんまし理解してないので、今死でやってたんですけど。
825
名前:
レゴ
:03/01/23 05:00
今あるプログラムを出来るだけ形を残しつつ、
テキストファイルに出力出来るようにしたいんです。
826
名前:
デフォルトの名無しさん
:03/01/23 05:00
とりあえず
822の1行目を
#include <iostream.h>
↓
#include <fstream.h>
に直し、
void main()
{
の次の行に
ofstream cout( "素数−実行結果.txt" );
を挿入するだけで君の期待する物は得られる
827
名前:
デフォルトの名無しさん
:03/01/23 05:05
>>826
えーそうなのー?簡単だね。
>>825
多分だけど時間がありそうだから、「C言語 fopen」とかで検索して
関数の使い方を調べてみたらどう?
そこまで組めたならチョコっと調べたら出来ると思うんだけどなー
828
名前:
レゴ
:03/01/23 05:07
凄いです!
coutの部分が全てファイルに出力されてました。
どうしてそんなに分かるんですかぁ〜?凄いですねぇ〜。
後、最後の printf("%d個です。",c);
という部分も結果としてテキストへ出したいのですが、
ofstream printf( "素数−実行結果.txt");
って書けば良いんですかね?
829
名前:
デフォルトの名無しさん
:03/01/23 05:11
>>828
ちゃうちゃう
cout に出力してるところと同じ方法で出力すれば良い
上の方で
cout << i << "は素数です。" << endl;
とやっているのだから、
同じように
cout <<*************(宿題)****************
しかしその分だとC++どころかCの文法もあいまいなようだし、
なぜcout << で文章が出力されるのかもわかってないっしょ?
そのままだと今後厳しいだろうからちゃんと入門書読んどいたほうが良いよ
830
名前:
レゴ
:03/01/23 05:18
はぅ〜
頑張ります☆
831
名前:
レゴ
:03/01/23 05:20
出来ましたぁ〜!
めっちゃ感動です!!!
832
名前:
デフォルトの名無しさん
:03/01/23 05:21
壮大なネタだったな
833
名前:
レゴ
:03/01/23 05:23
#include <fstream.h>
#include<stdio.h>
void main()
{
ofstream cout( "素数−実行結果.txt" );
int i, j ,f,n=1000,c=0;
// 1から1000までの数の素数を求める
// i, jはループ変数
// fは一回でも割り切れたら1。
// 一度も割り切れなかったら0。
for(i = 2; i <= n; i++) // i(==2,3,4,..,1000)について調べる。
{
f = 0;
for(j = 2; j < i; j++) // j(==2,3,...,i)で割ってみる。
{
if(i % j == 0) // あるjで割り切れたらfは1。
f = 1;
}
if(f == 0){// iを割り切るjがなかった場合
cout << i << "は素数です。" << endl;
c++;
}
}
cout << "素数は、" << c << "個です。" << endl;
}
こんな感じです。
本当にありがとう御座いました。
本当に感謝してます☆ありがとう御座いました。
834
名前:
デフォルトの名無しさん
:03/01/23 05:30
>>833
(*⌒ー')ノやったね♪
>>829
C++には便利な関数あるのね。勉強になった。
835
名前:
レゴ
:03/01/23 05:32
ネタって・・・、
こっちは、訳分かんなくて、必死だったんですよぉ。
色々、ありがとう御座いました。助かりました。
836
名前:
デフォルトの名無しさん
:03/01/23 05:35
結局coutのままか…
837
名前:
デフォルトの名無しさん
:03/01/23 05:36
そういえば前sendmail?が判らないって駄々こねてた人がいたんね。
838
名前:
レゴ
:03/01/23 05:41
今から、爆睡したいトコなんですが、
他の課題が在るので、そっち頑張ります。
また来た時は、宜しく御願いします。
御休み為さいです☆☆
839
名前:
デフォルトの名無しさん
:03/01/23 06:28
もう来なくていいよ(・ε・)
840
名前:
デフォルトの名無しさん
:03/01/23 07:00
そういえばC++を勉強し始めた頃はcoutが出力を行っているんだと思っていた。
coutはCのstdoutみたいなもので、出力を行っているのは<<なんだよな。
841
名前:
デフォルトの名無しさん
:03/01/23 07:07
>>840
微妙
842
名前:
デフォルトの名無しさん
:03/01/23 07:58
>>840
美乳
843
名前:
デフォルトの名無しさん
:03/01/23 08:05
>>840
陰毛
844
名前:
デフォルトの名無しさん
:03/01/23 08:06
>>840
微尿
845
名前:
デフォルトの名無しさん
:03/01/23 09:00
>>840
飲尿
846
名前:
デフォルトの名無しさん
:03/01/23 09:02
>>840
美称
847
名前:
ブラシさん
:03/01/23 09:41
>>813
,814
ありがとうございます。キャリーフラグはアセンブラでないと無理みたいですね。
848
名前:
ageMAN
:03/01/23 10:00
ファイルをドロップした時、ドロップされたウインドウを一番手前に
持ってくるには特殊な処理が必要だと思うけど、そういうすごいテクニックを
やってるソースはどこかにないかな?
849
名前:
デフォルトの名無しさん
:03/01/23 10:02
>>848
別にすごくないよ。
850
名前:
デフォルトの名無しさん
:03/01/23 11:05
>>レゴ
ちゃんと勉強しろ…っていいたくなる人だね
851
名前:
デフォルトの名無しさん
:03/01/23 11:12
>>790
亀レスだが、
Loki のスモールオブジェクトは
VC++.NET でリリースビルドすると、標準 new よりやや速くなる。
852
名前:
840
:03/01/23 11:24
>>842-846
なんなんだよあんたたちは(T_T)
853
名前:
デフォルトの名無しさん
:03/01/23 14:35
>>852
微妙
854
名前:
デフォルトの名無しさん
:03/01/23 14:52
>>852
美乳
855
名前:
デフォルトの名無しさん
:03/01/23 15:33
>>852
陰毛
856
名前:
デフォルトの名無しさん
:03/01/23 15:59
fstreamでテキストファイルを開いてstring型変数に
行を読み込む処理はどうやればいいですか?
f>>s;とやっても行の途中までしか読み込めません。
857
名前:
デフォルトの名無しさん
:03/01/23 16:05
>>856
std::getline(f, s, '\n');
858
名前:
C++厨
:03/01/23 16:05
std::getline(f, s);
とかで、どうよ。
859
名前:
デフォルトの名無しさん
:03/01/23 16:07
>>856
やっぱり
std::getline(f, s); でいいや。
860
名前:
C++厨
:03/01/23 16:12
( ゚∀゚ )ぱぱぱぱ〜ん
ぱぱぱぱ〜ん
ぱぱぱぱ、ぱぱぱ〜
ぱぱぱぱ、ぱぱぱ〜
I love you forever
I'll want you to fuck me
ついに俺もケコーンの時期が北か(*゚∀゚)
>>857-858
ハァハアx
861
名前:
デフォルトの名無しさん
:03/01/23 16:16
>>860
C++の標準ライブラリを理解している人が増えてきてうれしいよ。
862
名前:
856
:03/01/23 16:22
>>857-858
ありがとうございます。見落としていました。
ifstream::open/getにstringが渡せないのは不便ですが
char*/string両方サポートするのは面倒ということなんでしょうか。
863
名前:
デフォルトの名無しさん
:03/01/23 16:30
>>862
面倒というより、開発してきた経緯があって、多分別々のスタッフが
担当していたので整合が取れてないだけの話では?C++のライブラリ
にはそういう面がいっぱいある。
864
名前:
デフォルトの名無しさん
:03/01/23 18:14
basic_stringはSTLだがiostreamはSTLじゃない
元々別のライブラリだったものを同じstdネームスペースに突っ込んでるだけ
865
名前:
デフォルトの名無しさん
:03/01/23 18:25
basic_stringもSTL由来じゃないだろ。
866
名前:
山崎渉
:03/01/23 20:00
(^^)
867
名前:
デフォルトの名無しさん
:03/01/23 20:14
iostream, ... : C++ 標準ヘッダ
↓
vector, list, ... : STL → std ← char_trait : basic_string, ...
868
名前:
デフォルトの名無しさん
:03/01/23 20:32
おまいら
using namespace std;
はもちろんデフォだよな?
869
名前:
デフォルトの名無しさん
:03/01/23 20:33
>>868
付けてません。
870
名前:
デフォルトの名無しさん
:03/01/23 20:37
>>868
付けてません。
871
名前:
デフォルトの名無しさん
:03/01/23 20:55
>>868
まさか。*.cpp 内で
using std::vector;
とか並べることはあるが。
872
名前:
デフォルトの名無しさん
:03/01/23 20:57
>>871
同意。
873
名前:
デフォルトの名無しさん
:03/01/23 22:37
>>868
氏ね
874
名前:
868
:03/01/23 23:37
何で付けないんだよ。ブルッてんのか?
なんも実害ないだろ。
875
名前:
デフォルトの名無しさん
:03/01/23 23:39
名前空間の外はできるだけ綺麗にしておきたい。
876
名前:
デフォルトの名無しさん
:03/01/23 23:44
使わないなら using namespace って何のためにあるんだ?
877
名前:
デフォルトの名無しさん
:03/01/23 23:47
宗教戦争
878
名前:
デフォルトの名無しさん
:03/01/23 23:50
>>876
初心者&なまぐさ坊主のため。
879
名前:
474
:03/01/23 23:52
>>876
ライブラリのサンプルコードをすっきりさせるため。
880
名前:
デフォルトの名無しさん
:03/01/23 23:53
>>874
> なんも実害ないだろ。
いや using namespace std; するとコンパイルが通らなくなるソースは、すぐに
書けるだろ。
> 使わないなら using namespace って何のためにあるんだ?
歴史的事情
881
名前:
デフォルトの名無しさん
:03/01/24 00:02
using〜 を
ヘッダに書く奴は馬鹿。
ソースでグローバルに書くのは好きずき。
関数の中で書くのはデフォ。
882
名前:
876
:03/01/24 00:08
>>877
一億光年くらい納得した。
883
名前:
デフォルトの名無しさん
:03/01/24 00:09
>>880
書こうと思えば書けるが、標準で使われてしまっている名前はなるべく避けるのが
常識じゃないか?
とすれば、名前の衝突はそうそう発生しない。
884
名前:
デフォルトの名無しさん
:03/01/24 00:10
おいおい、ここで宗教戦争始めるのか?
なら ↓ こっち逝ってくれ。
http://pc3.2ch.net/test/read.cgi/tech/1031355713/l50
885
名前:
デフォルトの名無しさん
:03/01/24 00:14
うちの会社はstd::を付ける事にきまってるので、using使ったソースを
納入した場合全部書き直しとなります。
886
名前:
デフォルトの名無しさん
:03/01/24 01:01
それはマ板のネタ
887
名前:
デフォルトの名無しさん
:03/01/24 01:16
ある保守を任されたソースに書かれてることについて疑問があるのですが、
クラス内においてメンバ関数の処理を記述してあるようなもの。
これの宣言にinlineがついているのですが、これってなにか意味があるんでしょうか?
クラス内のメンバ関数宣言にinlineがつくというのは、クラス定義の
外側で関数定義するときにinlineを省略できる。このためだけに使うものだと
思っていたのですが、他になにか理由があるのでしょうか?
888
名前:
デフォルトの名無しさん
:03/01/24 01:19
しばらくするとstd::を書くのが快感になってくるんです
889
名前:
デフォルトの名無しさん
:03/01/24 01:21
>>887
> 外側で関数定義するときにinlineを省略できる
省略できたっけ?
890
名前:
デフォルトの名無しさん
:03/01/24 01:26
>>889
中で関数定義する時にinlineを省略できると間違えたと思われ。
891
名前:
デフォルトの名無しさん
:03/01/24 01:26
>>888
禿同
892
名前:
デフォルトの名無しさん
:03/01/24 01:29
>>888
同じく。時々手が震えて::が;;になったり:::になったりするのがまたイイ。
893
名前:
デフォルトの名無しさん
:03/01/24 01:29
class CLS{
inline char get();
};
char CLS::get(){
こういう書き方ができるとC++Primerには書いてあるんだけど・・・
894
名前:
デフォルトの名無しさん
:03/01/24 01:33
>>893
それはインラインにならないんじゃ・・・・
895
名前:
デフォルトの名無しさん
:03/01/24 01:36
>>893
げっ、こういう書き方も有効みたいだ。初めて知ったよ。
規格書ではどの辺を読めばいいのだろうか。
896
名前:
デフォルトの名無しさん
:03/01/24 01:42
で、、、なにか理由があるんでしょうか?
897
名前:
デフォルトの名無しさん
:03/01/24 01:46
>>896
普通外部で関数を定義するとinlineにならないが、クラス宣言の所で
inlineと書いておくと、外で関数を定義してもちゃんとinlineになるみたいだ。
規格書読んだけど目がちかちかしてどこに書いてあるのかわからなかった。
識者のレスをきぼん。
898
名前:
デフォルトの名無しさん
:03/01/24 01:50
>>897
クラス定義の中でメンバ関数の処理が書いてあるということは
inlineキーワードは付いても付いてなくても無条件でinlineに
なるから、意味ないですよね?ネームスペーススコープで
メンバ関数を定義するときは上の例みたいにいろいろと
あるみたいですが。。。
899
名前:
デフォルトの名無しさん
:03/01/24 01:52
それともinline関数にはちゃんとキーワードを付けた方が
コードが見やすいから、これをコーディング規約にしてしまおう
なんてのがあったのかな。その辺のドキュメントが残ってないから
ちょっと分からないのでなんともいえないですけどね。
900
名前:
デフォルトの名無しさん
:03/01/24 01:53
>>897
9.3.3
901
名前:
デフォルトの名無しさん
:03/01/24 02:00
>>898
class内部でメンバ関数の定義を書いてしまった場合は、そのメンバ関数
はinlineになりますが、class外部でメンバ関数の定義を書いた場合、その
関数がinlineになるかどうかは、メンバ関数の宣言の所にinlineと書いて
あるかどうかで決まるようです。
>>900
thanks.
902
名前:
デフォルトの名無しさん
:03/01/24 02:02
>>898
そのため、クラスの内部に定義を書こうと、外部に書こうと常にinlineに
なるように、クラス内部でメンバ関数全部にinlineと書くことに決めてある
んじゃないでしょうか。
903
名前:
デフォルトの名無しさん
:03/01/24 02:20
>>902
やっぱりコーディング規約的な話ですかね。
関数の処理実体があるかどうかなんて一目瞭然だと
思うのだけど、C屋さんには紛らわしかったりしたのかな。
とりあえず、このことは忘れて作業に戻ります。
みなさんどうもでした。
904
名前:
デフォルトの名無しさん
:03/01/24 02:26
903です902さんのよく読んでませんでした。
クラス定義においてinline関数にはinlineキーワードを
付けることを必須と決めておけば、メンバ関数を外に
出したときにinlineキーワードを付け忘れてもinline化
されるという意味ですね。この規則ってC++的常識から見て
どうなんでしょうかね。
905
名前:
デフォルトの名無しさん
:03/01/24 02:29
>>904
どうなんだろ
俺はコンパイラの最適化を盲信してinlineはどこにも使わないけどな
906
名前:
デフォルトの名無しさん
:03/01/24 02:45
>>904
>>900
さんの規格書の項目を読んでみられるといいよ(英文だけど)。
拙い和訳をすれば、「メンバ関数をinline化するにははクラスの宣言部に
inlineと書いても、定義部でinlineと書いてもよい。」のような意味になると
思います。
規格書にちゃんと書いてあるので、文法的にも正しいはずです。
というか俺もこれから使わせてもらいますね。
907
名前:
デフォルトの名無しさん
:03/01/24 08:42
次スレのテンプレ、いいの作ったからスレ立ては
>>907
に任しとき
908
名前:
デフォルトの名無しさん
:03/01/24 09:40
>>883
常識、で済めば話は簡単なんだがな…
909
名前:
デフォルトの名無しさん
:03/01/24 12:58
コンストラクタの暗黙の変換は役に立たないのか?
#include<iostream>
using namespace std;
struct A
{
A(int){}
};
void F(double i)
{
std::cout << "F(double)";
}
void F(A a)
{
std::cout << "F(A)";
}
int main()
{
F((int)123);//F(double)
}
910
名前:
デフォルトの名無しさん
:03/01/24 13:27
それは無理なんじゃ。。
Fのパラメータを評価する段階でint型の値をAにマッチさせる
理由はないわな。
911
名前:
デフォルトの名無しさん
:03/01/24 15:27
オーバーロードの解決では、標準変換 (int => double) のほうが
ユーザ定義変換 (A(int) {}) より優先するからね。C++3rd 7.4 参照。
912
名前:
デフォルトの名無しさん
:03/01/24 19:45
すみません。質問させてください。
プログラムからファイルの名前を変えたり、ファイルを削除する必要がでてきました。
環境はWindowsですが、なるべく「標準」でやりたいと思います。
ところが、調べてみると、C++でどうするか書いてある本が見当たりません。
Cでは、removeやrenameが使えるようなのですが、他にC++らしい方法はないのでしょうか。
ご存知の方、お願いします。
913
名前:
デフォルトの名無しさん
:03/01/24 19:50
>>912
std::remove
std::rename
914
名前:
デフォルトの名無しさん
:03/01/24 21:41
#pragma comment(linker, "/nodefaultlib:\"libc.lib\"")
#pragma comment(linker, "/entry:\"DllMain\"")
↑を使ってビルドすると、
すごく小さいサイズのファイルが出来上がって、
普通に動作してる気がするけど、
他の環境で使ったときに不具合がでるとか
何か問題ってあるのでしょうか?
915
名前:
デフォルトの名無しさん
:03/01/24 21:45
>>914
pragmaつかっといて、他の環境ってどういうこと?
まぁまずはスレ違いダナ。VCスレいけば?
916
名前:
デフォルトの名無しさん
:03/01/25 01:06
#include <unistd.h>
main()
{
int i,j;
printf("program start");
j=fork();
if(j
>0
)
{
printf("parent-1");
sleep(5);
printf("parent-2");
sleep(5);
printf("parent-3");
}
if(i==0){
printf("child-1");
sleep(8);
printf("child-2")
}
return(0);
}
すみませんがエラー1になるのですが、実行の仕方を教えてください
917
名前:
デフォルトの名無しさん
:03/01/25 01:08
>>916
UNIX板へ逝け。
918
名前:
デフォルトの名無しさん
:03/01/25 01:24
#include <cstdio>
#include <unistd.h>
int main(){
int i,j;
printf("program start\n");
j=fork();
if (j
>0
) {
printf("parent-1\n");
sleep(5);
printf("parent-2\n");
sleep(5);
printf("parent-3\n");
}
if (i==0) {
printf("child-1\n");
sleep(8);
printf("child-2\n");
}
return(0);
}
919
名前:
デフォルトの名無しさん
:03/01/25 01:27
#include <cstdio>
#include <unistd.h>
int main(){
int i,j;
std::printf("program start\n");
j = ::fork();
if (j > 0) {
std::printf("parent-1\n");
::sleep(5);
std::printf("parent-2\n");
::sleep(5);
std::printf("parent-3\n");
}
if (i == 0) {
std::printf("child-1\n");
::sleep(8);
std::printf("child-2\n");
}
return(0);
}
本当はこうしないとダメかな??
920
名前:
マルチはだめですよ〜
:03/01/25 01:44
はわわ〜
921
名前:
デフォルトの名無しさん
:03/01/25 04:15
ファイルサイズを取得するには、C言語ならファイルをバイナリモードで
開いておき、
fseek(fi, 0, SEEK_END);
size = ftell(fi);
のような感じで簡単にできましたが、C++ではtellg()の返す値の型が
std::ios::pos_typeのためにそれができません。
もちろん大概のコンパイラのstd::ios::pos_typeはunsignedもしくは
unsigned longのtypedefなのですが、それに依存せずファイルサイズ
を簡単に取得する方法はありますでしょうか?
922
名前:
デフォルトの名無しさん
:03/01/25 04:46
ない。
何故なら、「ファイルサイズ」 が環境依存の概念だから。
環境依存でないのなら、それを取得する標準関数が用意されるはずだ。
923
名前:
デフォルトの名無しさん
:03/01/25 04:59
>>922
そうですか・・・・ありがとうございました。
どうしても必要な時はstd::fseek()などを使ってやる事にします。
924
名前:
デフォルトの名無しさん
:03/01/25 05:24
>>919
いいかげん荒らすのはやめてくれんかね。
925
名前:
デフォルトの名無しさん
:03/01/25 11:03
string型は積極的に使うべき?
926
名前:
デフォルトの名無しさん
:03/01/25 11:31
やってはいけないことが分かっているなら使うべき
927
名前:
デフォルトの名無しさん
:03/01/25 11:56
やってはいけないこととは何?
928
名前:
デフォルトの名無しさん
:03/01/25 12:14
>>927
タイトなループ中で const string& をとる関数 foo() に
foo("string");
と書くとか。毎回 string オブジェクトのコンストラクト・デストラクトが行われて
泣ける。
929
名前:
デフォルトの名無しさん
:03/01/25 12:31
なるほど
930
名前:
デフォルトの名無しさん
:03/01/26 00:47
最適化されるだろ。
931
名前:
デフォルトの名無しさん
:03/01/26 01:15
コンストラクタ・デストラクタの最適化はうまく逝くのだろうか?
932
名前:
デフォルトの名無しさん
:03/01/26 01:19
されないだろ。つかされたら困る。
933
名前:
デフォルトの名無しさん
:03/01/26 01:33
ベンチマークテストでもやってみるべ。
風呂入ってくるから後で。
934
名前:
デフォルトの名無しさん
:03/01/26 01:43
>>933
ハァァ?ベンチマークとるまでもないだろ。
理性的に考えれば結果は明白。これだからベンチマーク厨は・・・
とかいう芳しいのが別のスレに居た。
935
名前:
デフォルトの名無しさん
:03/01/26 02:09
>>934
まあそう言わずに、どれだけ実際に違うのか見てみましょうよ。
g++3.2.1(MinGW)で以下の関数を QueryPerformanceCounterで測定。
void dummy(const std::string& s)
{
}
void func1()
{
for (int i = 0; i < LOOP; i++)
dummy("test");
}
void func2()
{
std::string s("test");
for (int i = 0; i < LOOP; i++)
dummy(s);
}
936
名前:
デフォルトの名無しさん
:03/01/26 02:12
コンパイルオプションは -O3。
LOOP = 500000 で実験。
func1 = 365125
func2 = 1944
ご覧のように、std::stringのコンストラクタを呼んだ方は100倍以上も
遅くなってしまいますた。
-O2だと
func1 = 371604
func2 = 7711
これでも全然遅いです。
937
名前:
デフォルトの名無しさん
:03/01/26 02:17
933じゃないけど試してみたよ。
VC7, gcc3ともに毎回コンストラクト/デストラクトしてた。
最適化オプションつけたらvc7は5倍ぐらい速くなったけど、
gcc3は1.2倍程度だった。
stringの生成をループの外に持ってったら、
最適化オプションなしで20倍ぐらい速くなった。
ところで、foo()の中身を、引数のstringの長さをグローバル変数に足しこむ
のにしてたんだけど、
ループ外にもってったのをvc7で最適化したら、ループが無くなってました。
gcc3は残ってた。
938
名前:
937
:03/01/26 02:20
書いてるうちに別の方が書き込みを・・・
やってることはほぼ同じです。
939
名前:
デフォルトの名無しさん
:03/01/26 02:29
>>937
VC7の方もなかなか速いね。gccは-O3にしたらループは
残るものの、callが無くなっていました。
int len;
void dummy(const std::string& s)
{
len += s.length();
}
でやったら、-O3で
func1 = 379483
func2 = 9185
という結果。これがまあ実際の使用上の差かもしれません。
940
名前:
デフォルトの名無しさん
:03/01/26 02:58
enumって何ナノ?定数のtypedef?
継承できないよね?
勝手にできないと思って、拡張するとき
#defineでごまかしてるんだけど。
classにstatic constならべたclassを継承すれば
継承っぽいなぁ。めんどいけど。
詳しい方ご教授ください。
941
名前:
デフォルトの名無しさん
:03/01/26 03:11
enumに整数以外の型も使えたらなあ・・・
942
名前:
デフォルトの名無しさん
:03/01/26 03:13
>>940
enum は列挙型で、それ自身独立した型。enum から整数には暗黙の変換が
利くけど、整数から enum や異なる enum 間の変換にはキャストが必要。
おそらく
class Foo {
public:
enum TYPE1 { A, B, C, ... };
virtual func(TYPE1 t);
};
なんてのがあって enum を拡張したいのだと思うけど、それは設計が腐ってる。
func() の中で t の値で処理を場合分けしていて、かつ t に対して将来の追加が
考えられるなら、処理自体をカプセル化して別のクラスに括り出すことを考えた
方が良い。
class Cmd {
public:
virtual func(Cmd& foo) = 0;
};
// enum に対応して Cmd の派生クラスを作っておく
// Cmd 派生クラスのインスタンス生成は Factory パターンでも使って下さい
class Foo {
public:
virtual func(Cmd* cmd);
};
943
名前:
C++厨
:03/01/26 13:20
enumeration
【名】《【複】enumerations》
(1)数え上げること; 列挙.
(2)目録, 表 (=list).
by Roboword
944
名前:
デフォルトの名無しさん
:03/01/26 16:16
cygwin 上の g++ で
$ g++ hoge.cpp -I /hogeinc
と書いてコンパイルしてるんですが、この -I /hogeinc を書かなくても
自動的に対象ディレクトリを見てくれるようにするにはどうしたらいいですか?
945
名前:
デフォルトの名無しさん
:03/01/26 16:18
知らん。
makefile工夫すれば書くのはめんどくさくないと思うが。
946
名前:
デフォルトの名無しさん
:03/01/26 16:19
>>944
specs に書いておく。gcc -v すると specs ファイルのパス名分かるから、あとは
それをエディタで開いて書き換えましょう。
947
名前:
944
:03/01/26 16:48
>>945
make 使うまでもないちいさなプログラムのテストとかで面倒くさいんです。
>>946
できましたー!ありがとうございます!!
これは gcc ならどんな環境でも有効な方法なんでしょうか?
948
名前:
デフォルトの名無しさん
:03/01/26 18:40
質問があります。
非常に日本語で表しにくいのですが…
ある範囲内の数値でIDを自動的に生成するようなクラスは
どのように実装したらよいでしょうか?
例えば、Get()で新しいIDを、Release(ID)でIDの解放を行うような
ID管理のクラスを作りたいのですが。
最初はstd::vector<bool>を使って使用中か否か管理しようかと
思ったのですが、intの全範囲で使用可能などとなると管理が
できなくなってしまうので…
皆様のご意見をお聞かせください。
949
名前:
デフォルトの名無しさん
:03/01/26 18:53
>>948
それしか方法が無いと思うが。
できるのは、容量を縮めるのに bitset を応用できるくらい?
950
名前:
デフォルトの名無しさん
:03/01/26 19:08
>>949
Get, Release に特定のパターンがあるなら、最適化する余地はある。たとえば
多くの場合、
まとめて Get
まとめて Release
するなら、
ここから、ここまで確保されている (最小 ID と最大 ID のタプル)
っつーのを持たせた方が良い。
何の前提もつけられないとなると、完全に全範囲持たせるしかないよな…
951
名前:
デフォルトの名無しさん
:03/01/26 19:59
>>948
std::set<int>、で、どう?
952
名前:
デフォルトの名無しさん
:03/01/26 22:11
>>907
立てるの?立てないの?
■過去スレ■
Part1
http://piza.2ch.net/tech/kako/980/980175292.html
Part2
http://pc.2ch.net/tech/kako/996/996640937.html
Part3
http://pc.2ch.net/tech/kako/1003/10038/1003832761.html
Part4
http://pc.2ch.net/tech/kako/1009/10090/1009071535.html
Part5
http://pc.2ch.net/tech/kako/1014/10142/1014217496.html
Part6
http://pc.2ch.net/tech/kako/1018/10184/1018454705.html
Part7
http://pc.2ch.net/tech/kako/1021/10217/1021787032.html
Part8
http://pc3.2ch.net/tech/kako/1025/10250/1025010364.html
Part9
http://pc3.2ch.net/tech/kako/1027/10273/1027347982.html
Part10
http://pc3.2ch.net/tech/kako/1029/10293/1029315669.html
Part11
http://pc3.2ch.net/tech/kako/1032/10323/1032345774.html
part12
http://pc3.2ch.net/tech/kako/1035/10350/1035005882.html
part13
http://pc3.2ch.net/tech/kako/1038/10380/1038031395.html
part14
http://pc3.2ch.net/test/read.cgi/tech/1041328679/
■関連スレ■
【C++】template 統合スレ -- STL/Boost/Loki, etc.
http://pc3.2ch.net/test/read.cgi/tech/1037795348/
STLスレッド
http://pc.2ch.net/tech/kako/1004/10042/1004287394.html
STLスレッド part2
http://pc3.2ch.net/tech/kako/1026/10267/1026793823.html
953
名前:
デフォルトの名無しさん
:03/01/27 00:33
class A
{
A();
}
class B : public A
{
B();
}
この場合手持ちのコンパイラでは
A::A()が先に実行されるのですが
これは規格で保証されてる事なのでしょうか?
954
名前:
デフォルトの名無しさん
:03/01/27 00:34
>>953
保証されてる。デストラクタがその逆であることも。
955
名前:
デフォルトの名無しさん
:03/01/27 00:38
>>954
ありがとうございます
956
名前:
デフォルトの名無しさん
:03/01/27 02:27
>>928-
>>939
の書き込みに感動しました。
実行時間の測定は、gccというかUNIXの場合timeを使うのですよね。
VCの場合、どうやって測定するのでしょうか。
957
名前:
デフォルトの名無しさん
:03/01/27 02:32
>>956
トリッキーなコード2より転載。windows.hをインクルードして呼ぶ。
int prof(void (*func)())
{
__int64 start, end, freq;
HANDLE hprocess;
DWORD oldclass;
hprocess = GetCurrentProcess();
oldclass = GetPriorityClass(hprocess);
Sleep(10);
SetPriorityClass(hprocess, REALTIME_PRIORITY_CLASS);
QueryPerformanceFrequency((LARGE_INTEGER*)&freq);
QueryPerformanceCounter((LARGE_INTEGER*)&start);
func();
QueryPerformanceCounter((LARGE_INTEGER*)&end);
SetPriorityClass(hprocess, oldclass);
return (int)(end - start);
}
958
名前:
デフォルトの名無しさん
:03/01/27 02:35
>>949
VC++6では既に, std::vector<bool>は1要素1bitで保持してる(はず)。
激しく環境依存だけど。
959
名前:
デフォルトの名無しさん
:03/01/27 03:55
新スレ立てました C++相談室 part15
http://pc3.2ch.net/test/read.cgi/tech/1043605481/
960
名前:
デフォルトの名無しさん
:03/01/27 04:01
足りないと思われるものがあるなら今のうちに次スレの
方に貼り付けておいてください。今日はもう寝ます、お休みなさい。
961
名前:
デフォルトの名無しさん
:03/01/27 06:12
漏れの脳みそは足りないと思うのですが、何を貼り付ければいいですか?
962
名前:
デフォルトの名無しさん
:03/01/27 07:33
汝には、当家に伝わる秘伝中の秘伝である
ありがた〜い、塗り薬を授けるので
今すぐ、頭をかちわって、脳みそを送るが良いぞ
963
名前:
デフォルトの名無しさん
:03/01/27 08:28
これから頭をかち割ってみます
964
名前:
デフォルトの名無しさん
:03/01/27 11:52
v(^・^)v
965
名前:
デフォルトの名無しさん
:03/01/27 12:03
963 は絶息しますた。
966
名前:
デフォルトの名無しさん
:03/01/29 14:01
そういえば次スレの案内がないので(またサーバー変わったみたいだし)
C++相談室 part15
http://pc2.2ch.net/test/read.cgi/tech/1043605481/l50
967
名前:
デフォルトの名無しさん
:03/02/05 22:15
DeveloperStudioってVisualC++.NETについてるの?
いまVisualStudio.NETアカデミックを持ってるけど・・・
968
名前:
967
:03/02/06 03:42
解決しました。ありがとうございました。
969
名前:
デフォルトの名無しさん
:03/02/08 00:16
age
970
名前:
デフォルトの名無しさん
:03/02/08 00:38
ちょっと前に、ベンチマークに時間を計る話がありましたよね。
俺の環境では、Cygwinでtimeとするといいと思うんですが、そこで出てくる
real、user、sysの意味がよくわかりません。
実時間、ユーザー時間、システム時間って言葉ではさっぱりです。
ベンチマークになるのは、どれなんでしょう?
971
名前:
デフォルトの名無しさん
:03/02/08 10:27
boost::timer
972
名前:
デフォルトの名無しさん
:03/02/11 17:49
> 安く作成
(・∀・)カエレ!
973
名前:
デフォルトの名無しさん
:03/02/12 23:10
>>970
real … プログラムの起動から終了までの時間
user … ユーザー側の実行に CPU が費やした時間
sys … OS側の実行に CPU が費やした時間
全体の処理時間を評価したいなら real 時間
アルゴリズムを評価したいなら user 時間
OS の機能を評価したいなら sys 時間
974
名前:
デフォルトの名無しさん
:03/03/12 13:41
sage
975
名前:
デフォルトの名無しさん
:03/03/13 20:30
age
976
名前:
デフォルトの名無しさん
:03/03/14 18:36
ぬるぽ
977
名前:
デフォルトの名無しさん
:03/03/14 18:58
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←
>>976
C++相談室 part15
http://pc2.2ch.net/test/read.cgi/tech/1043605481/l50
978
名前:
デフォルトの名無しさん
:03/03/14 19:10
( `Д´) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V・∀・)/
(_フ彡 / ←
>>977
C++相談室 part17
http://pc2.2ch.net/test/read.cgi/tech/1047560042/
979
名前:
デフォルトの名無しさん
:03/03/15 00:54
| ̄ ̄ ̄|___
| ヌノ|
|______|
∧∧ ||
( ゚д゚)||
/ づΦ
980
名前:
デフォルトの名無しさん
:03/03/15 01:59
______
|__ |
|レポ |
|___|
∧∧ ||
( ゚д゚)||
/ づΦ
981
名前:
デフォルトの名無しさん
:03/03/15 02:29
( `Д´) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V・∀・)/
(_フ彡 / ←
>>980
C++相談室 part17
http://pc2.2ch.net/test/read.cgi/tech/1047560042/
■過去ログ置き場に戻る■
1-
前250
最新50
DAT2HTML
0.33f Converted.