그래서 클래스를 통해 2D 값을 저장하는 데 사용하는 선형 벡터가 있습니다. 이제 역순으로 값을 인쇄하려고합니다 ... 값이 (0,0)
인 경우 맨 아래를 차지합니다. 왼쪽 및 (max_x,max_y)
이 오른쪽 상단을 차지합니다. 일반적인 데카르트 그리드와 같습니다.이상한 std :: vector :: reverse_iterator 및 문자열 동작
std::string ss="";
int i=0;
for (std::vector<real>::reverse_iterator it= vector.rbegin(); it!=vector.rend();++it)
{
if (lineChanger==max_x)
{
std::cout<<ss<<std::endl;
ss=""; lineChanger=0;
}
ss=std::to_string(*it) +"|"+ ss;
lineChanger++;
}
참고 : 여기 내 코드는 내가 직접 문자열 및 인쇄를 사용하지 않는 경우, 모든 것이 순서는 반대입니다, 괜찮습니다. 내 모든 회원 함수 작동 내 주 코드에서 나는 (클래스 함수 호출) 필요한 값으로 벡터를 채우기 위해 std::fill
을 사용합니다. 예를 들어 몇 가지 값을 변경하십시오. (0,0)
및 (max_x,max_y)
에 수동으로 (멤버 함수) 그래서 6x6 = 36 크기의 벡터에 대해 2.38로 채웠다 고합니다. 이제 나는 접근 할 첫 번째 값을 바꾸고 (벡터에서 마지막으로, 역 반복기에서 처음으로) 3.라고 말하고 프로그램을 실행한다. 출력 : 벡터의 전체 크기입니다
2.380000|2.380000|2.380000|2.380000|2.380000|2.380000|
2.380000|2.380000|2.380000|2.380000|2.380000|2.380000|
2.380000|2.380000|2.380000|2.380000|2.380000|2.380000|
2.380000|2.380000|2.380000|2.380000|2.380000|2.380000|
2.380000|2.380000|2.380000|2.380000|2.380000|2.380000|
, 나는 초기 표준 : 채우기 값를 얻을 수는 ...에 어떤 문제가 있습니까? 나는 []
연산자를 피하고 싶습니다.
내 문제가 해결되었습니다 .... 가끔 마음이 작동하지 않습니다. P – user3145076