トップページ⇒tech
1001コメント302KB

C++相談室 part34

■ このスレッドは過去ログ倉庫に格納されています
0001v(^・^)vNGNG
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
テンプレートライブラリ(STL含む)に関する質問は
専用の別スレにお願いッス。

過去スレ、関連スレ、関連リンクなどは >>2-20 あたり
0052デフォルトの名無しさんNGNG
>>42 ttp://www.sgi.com/tech/stl/thread_safety.html
0053デフォルトの名無しさんNGNG
>>51
あれってスレッドセーフだっけ?
0054デフォルトの名無しさんNGNG
>>53
スレッド周りの対応が山盛りでおなかいっぱい。
0055デフォルトの名無しさんNGNG
>>54
調べてみた。
boost:shared_ptr は、同一のインスタンスについては、多重の読み込みしかスレッドセーフではない。
スレッド毎にコピーを作ってあげれば、参照カウントは共有され、かつ変更に対しても安全になる。
0056デフォルトの名無しさんNGNG
このスレはセーフですか?
0057デフォルトの名無しさんNGNG
レスごとにスレを分割すればOKです
0058デフォルトの名無しさんNGNG
>>18
boost::function 使う。
0059デフォルトの名無しさんNGNG
>>1
乙。
0060デフォルトの名無しさんNGNG
初心者でもうしわけないのですがやっぱりC++とC#を将来使いこなしたいのであれば、
C言語を勉強する必要があるのでしょうか?
0061デフォルトの名無しさんNGNG
>>60
>>4見て出直せクッソタレ!
0062デフォルトの名無しさんNGNG
見たんだけれどC++でできる事はほとんどC言語でできるっぽいってのはわかったんだけれど、
C#ってのはどうなんかと思って。
C++とC#を将来使いこなしたい ってのをCC#を将来使いこなしたい
にしとけばよかった。スマソ 
ほかのスレでC++は得意だけれどC#は苦手とかC#はいけるがC++はダメポとか
いうレスみたんで。。 得意な方からいわせるとやはりC++とC#は違うのですかね?
違うと言うことになればいきなりC#から勉強できるのかな??
0063デフォルトの名無しさんNGNG
>C++でできる事はほとんどC言語でできるっぽいってのはわかった
こんな奴がC#やっても時間の無駄
0064デフォルトの名無しさんNGNG
>>62
ならC言語だけでデザインパターン23種類全部書いてみい。
0065デフォルトの名無しさんNGNG
俺なんかもっとすごいこと知ってるぞ!!!
C++でできることも、C#でできることも、Javaでできることも、
みーんなアセンブラ使っても出来るんだぞ!!!!!!!

インターネットもリナックスもみんなアセンブラしてるんだぞ!!
友達のスーパーハッカーもアセンブラだって言ってたぞ!!!!
0066デフォルトの名無しさんNGNG
嬉々として書くほどは面白くないよ。
0067デフォルトの名無しさんNGNG
>>63 すみません。今日が初めての日なんで・・・
夜からずっとやってますが根性だけはあるんでアドバイスお願いいたします。ペコ
0068デフォルトの名無しさんNGNG
C# < C++ < C
0069デフォルトの名無しさんNGNG
C → C++ → C# ありがとうございますです。ペコ
調べ直していろいろさらに分かり、思ったのですが、Cはもう古いそうなんで
思い切ってC++から勉強したいと思います。
C++やっているみなさんから言いマストやはりそれは無謀でしょうかね?
ちなみに今高校1年生ですので難しい数学はやったことないレベルであります。汗。
0070デフォルトの名無しさんNGNG
カキコ修正でごんす。
CがわからんとC++ほとんどわからんらしいっす。 いままでスマソ
0071デフォルトの名無しさんNGNG
数学云々より向いてるか向いてないかの問題
そしてなんでもかんでもすぐ人に聞く奴は向いてない
0072デフォルトの名無しさんNGNG
>>71
>そしてなんでもかんでもすぐ人に聞く奴は向いてない
禿堂
0073デフォルトの名無しさんNGNG
>>72
いや全く。
とりあえず手元にPCはあるようですから、実際に動かしつつ勉強すればいいですな。
書店で適当な入門書を見繕ってきて、まずは1冊を読み通しながら。
gccならネットから無償で入手できるし、学生さんならMS製品もアカデミック価格でしたっけ?
0074デフォルトの名無しさんNGNG
#include <iostream>
#include <string>
using namespace std;

int i,k;
int main()
{
string str[4][2];

str[0][0] = "就職 ";
str[0][1] = "活動 ";
str[1][0] = "会社 ";
str[1][1] = "訪問 ";
str[2][0] = "集団 ";
str[2][1] = "面接 ";
str[3][0] = "学校 ";
str[3][1] = "推薦 ";

for(i=0;i<4;i++){
for(k=0;k<2;k++){

cout << str[i][k] << endl;

}

cout << "\n";
}

return 0;
}

これってどうよ?
0075デフォルトの名無しさんNGNG
>>74
初期化の仕方がダサすぎ
0076デフォルトの名無しさんNGNG
スレッドセーフといえば、以前、COM のオブジェクトを実装するときに、
Release のスレッドセーフな実装でさんざん悩んでドツボにはまったことがある。
0077デフォルトの名無しさんNGNG
>>67
根性あるなら我慢して真剣にCを1ヵ月勉強しなさい。
それで身の振り方もわかるようになるだろう。
Cでやった事はJavaなりC++なりC#なりで必ず役に立つ。
それに1つの言語をマスターすれば他の言語を覚えるのに時間はかからない。
0078デフォルトの名無しさんNGNG
>>75
コピペニマジレスカコワ(ry
0079デフォルトの名無しさんNGNG
>>71 72 73 77
本当にありがとうございます。
実は10時間くらい調べて聞いたのですがまだ調べたりなかったようです。ペコ
77さん本当に参考になりましたっす。C言語の入門書慎重に選んで熟読しプログラミングは覚えるより慣れろ
らしいのでがんばってやっていきたいと思います。
0080デフォルトの名無しさんNGNG
>>77
BASICやアセンブラの場合は、他の言語覚えるのにまだまだ時間かかると思うけどな。
0081デフォルトの名無しさんNGNG
C#のparamsって便利だよな。
0082デフォルトの名無しさんNGNG
>>79
日本語の勉強もしておけよ。
仕事でプログラミングをする積もりなら読解力と文章構成力が必要になるからな。
0083デフォルトの名無しさんNGNG
>>80
そうか?アセンブラ知っていればCは楽勝。とくにポインタでつまづくことがない。
0084デフォルトの名無しさんNGNG
>アセンブラ知っていればCは楽勝

そうかなぁぁぁぁ?
0085デフォルトの名無しさんNGNG
>>84
アセンブラ理解できるセンスがあればCは理解できそうな気がする。
C++はまた別のセンスが必要だけど。
0086デフォルトの名無しさんNGNG
センスってなんだ。
勉強すりゃ誰でもできるわ。
0087デフォルトの名無しさんNGNG
>>86 は世間知らず。
困ったことに勉強しても出来ない奴はごまんといます。
0088デフォルトの名無しさんNGNG
>>85
センスというか相性だね。C++やり始めたらあまりの難しさに根をあげてしまう香具師は
いくらでもいる。反対にそんなに難しく感じずあっさりと身につけてしまう香具師もいる。
>>86
考え方が甘い
0089デフォルトの名無しさんNGNG
センスが要求されるのはある程度より深いところの話で、普通に使うだけならちゃんとした学習すれば誰にでも出来る。
0090デフォルトの名無しさんNGNG
できない人間はセンスだとか抽象的な表現を使う法則。
0091デフォルトの名無しさんNGNG
>>86>>89
君はどうも努力万能主義だね。君の考え方に従えば、100人いれば100人が
努力すれば全員東大に合格して、エリートコースを歩めるという風に読める。

で、君は無事に東大を卒業してエリートコースを歩いているかね?それとも
ただの妄想ですか?ププ
0092デフォルトの名無しさんNGNG
>>91
そんなに難しいことかい?
0093デフォルトの名無しさんNGNG
>>92
東大卒ですか?
0094デフォルトの名無しさんNGNG
>>91
努力すれば誰でも東大に受かるなんて風には、とても読めませんが。
0095デフォルトの名無しさんNGNG
>>91
F1は誰にでも乗りこなせるものじゃないが、運転免許程度なら取れん奴のほうが珍しいだろ。
0096デフォルトの名無しさんNGNG
C++は神に選ばれたものだけが使えるエリート専用言語なんだよ
0097デフォルトの名無しさんNGNG
>>94>>95
同一人物ですか。東大とは拡大解釈しすぎかもしれんが、だからと言って君は
C++を舐めすぎ。エピステーメーみたいになれるんかよ?
009894NGNG
>>97
同一人物じゃないし、C++を舐めてはいない。
妄想もたいがいにな。
0099デフォルトの名無しさんNGNG
ちゅうか>>86はアセンブラの事かと思てたが
0100デフォルトの名無しさんNGNG
>>98
妄想はお前の方。逃げるなよ。誰も脳無しのお前を責めたりしないから。
010194NGNG
>>100
へぇ。俺はどんな妄想したんだ?
0102デフォルトの名無しさんNGNG
マ板でやれよ
0103デフォルトの名無しさんNGNG
まぁ、夏だからな
010494NGNG
あぁ、ヘンな奴の相手してしまった。
0105デフォルトの名無しさんNGNG
100は逃げました
0106デフォルトの名無しさんNGNG
>>101
同一人物なのにそうでないと言い逃れするとはチキンな野郎だ。
嘘つきは相手をしても無駄なエネルギーを使うだけなので放置。
0107デフォルトの名無しさんNGNG
そこまでC++を使えることが特別なことだと思わないとアイデンティティ保てない>>91=>>97=>>100=>>106って可哀相だな。同情する。
010894NGNG
OK。95には悪いが、俺=95ってことでこの話題終了。
0109デフォルトの名無しさんNGNG































0110デフォルトの名無しさんNGNG































0111デフォルトの名無しさんNGNG
夏満開
0112デフォルトの名無しさんNGNG
ぁぁデムパに構いたい
0113デフォルトの名無しさんNGNG
嘘つきは、泥棒の始まり。
0114デフォルトの名無しさんNGNG
2chの電波は単なる子供の場合が多いから、もっと優しくしてやれよ。
0115デフォルトの名無しさんNGNG































0116デフォルトの名無しさんNGNG
char_traits<T>::copyとchar_traits<T>::moveってどうちがうんですか?
どっちもバッファのオーバーラップが許されないとあるのですが、
だったらmoveの意義が無い気がするのですが。
0117デフォルトの名無しさんNGNG
>>116
氏ね。そうすれば悩まなくて済む。
0118デフォルトの名無しさんNGNG
>>114
お前自身が子供のようにな。
0119デフォルトの名無しさんNGNG
ttp://tmp4.2ch.net/test/read.cgi/download/1091536277/515
すいません、この人を引き取ってもらえませんか?
0120デフォルトの名無しさんNGNG
男割だ
0121デフォルトの名無しさんNGNG
>>119
明らかにスレ違いだハゲ
0122デフォルトの名無しさんNGNG
>>116
moveは重なってても大丈夫のはず。
何の記述を見たのですか?
0123デフォルトの名無しさんNGNG
>>82 日本語の勉強も必要なんすかぁ〜 了解です!
Cと日本語がんばります! ありがとうございました。
0124デフォルトの名無しさんNGNG
>>122
VC6に付いてるMSDNには許されないと書いてあるな。
0125デフォルトの名無しさんNGNG
>>124
オンライン版(英語)を見た。→ttp://msdn.microsoft.com/library/en-us/vclang98/html/STRING2_CHAR_TRAITSCCMOVE.asp
"The source and destination may overlap." と書いてある。
日本語訳が間違ってるのかな?
0126デフォルトの名無しさんNGNG
>>116
オーバーラップがないのが確実なら
オーバーラップが許されないほうを使うほうが速い。それだけ
0127デフォルトの名無しさんNGNG
>>126
なにいってんだ
0128126NGNG
>>127
なんか変だった
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vcstdlib/html/vclrf_string_chartraitsmove.asp
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vcstdlib/html/vclrf_string_chartraitscopy.asp
copyはsequences must not overlap
moveはpossibly overlapping sequence.
0129デフォルトの名無しさんNGNG
VC6 MSDNの和訳ミスということで。
0130デフォルトの名無しさんNGNG
こんな程度、訳せないようじゃあ、他のところも全く信用できないな。
0131デフォルトの名無しさんNGNG
まあ、原文が間違ってるところもあるし。
0132デフォルトの名無しさんNGNG
ファイルサイズを取得するにはどうすればいいのですか?
今はifstreamでファイルをオープンして最後までなめる処理を
してるんですがあまりにもナンセンスなんで・・・

string strLogFileName = "hogehoge.txt";
ifstream in;
in.open(strLogFileName.c_str(), ios::in);
if (in.is_open())
{
 // サイズを見る
 uint nCount = 0;
 char c;
 while (!in.eof())
 {
  in.get(c);
  nCount++;
 }
}
in.close();
cout << nCount << endl;
0133132NGNG
あ、最後の出力のとこがnCountのスコープはずれてましたね。
0134デフォルトの名無しさんNGNG
std::ifstream i(strLogFileName.c_str(), std::ios::binary);
if (i.is_open()) {
i.unsetf(std::ios::skipws);
std::istreambuf_iterator<char> it(i);
size_t s = std::distance(it, std::istreambuf_iterator<char>());
}
0135デフォルトの名無しさんNGNG
スコープ外したらコンパイルエラー(ry
0136デフォルトの名無しさんNGNG
せめて読むんじゃなくてseekしようよ。
で、普通はANSI標準じゃないけど
POSIX標準なstat/fstatを使うんじゃないかなあ。
0137デフォルトの名無しさんNGNG
>>132
C++の標準にファイルサイズという概念はない。環境依存。
0138デフォルトの名無しさんNGNG
>>136
fstreamではseekは推奨できないんじゃないか。
0139デフォルトの名無しさんNGNG
>>134
i.unsetf(std::ios::skipws);は必要無いんじゃないか?
0140デフォルトの名無しさんNGNG
>>137
概念は無くともファイルが存在すれば、
その格納データ量という意味で意味づけはできるんじゃない?
0141デフォルトの名無しさんNGNG
ファイルサイズ。
fseek()で終端に位置づけてftell()で位置を取得で終わりじゃん。
テキスト、バイナリの区別は必要かもしれないが、
その辺は調べてちょ。
0142デフォルトの名無しさんNGNG
boost使えば簡単じゃん。
次期標準だろ。
0143デフォルトの名無しさんNGNG
プゲラ
0144デフォルトの名無しさんNGNG
boost::filesystemにファイルサイズはない。
0145デフォルトの名無しさんNGNG
本当にファイルサイズが必要なのか?
たとえばifstreamを使って読み込むなら、
スペースのスキップや改行コードの変更によって
読み出せるデータ量が変わってくるんだから
132のように一文字ずつ数えるしかないんじゃ?
0146デフォルトの名無しさんNGNG
バイナリモードでfopenしてfseek,ftellじゃ駄目なの?
0147デフォルトの名無しさんNGNG
ファイルサイズ・・・。
定番の釣りだな。アフォクサ。POSIXで答えでてるじゃん。
0148デフォルトの名無しさんNGNG
アフォクサいのに釣られてるよ、この馬鹿。
0149デフォルトの名無しさんNGNG
たまに見かける、「iostream系だけで解決したい厨」。
iostreamだけ使えとは誰も言っていないにも拘らず、定期的に湧く。
0150デフォルトの名無しさんNGNG
147が釣りに見える
0151デフォルトの名無しさんNGNG
>>141>>146で答えが出てるのにね。
■ このスレッドは過去ログ倉庫に格納されています